IALweb Homepage
Forum Home Forum Home > Programmazione > Programmazione > C/C++ - VISUAL C++
  New Posts New Posts RSS Feed - Copiare intero .txt in editbox VC++
  FAQ FAQ  Forum Search   Events   Register Register  Login Login


REGISTRATEVI su IALWeb forum!

Copiare intero .txt in editbox VC++

 Post Reply Post Reply
Author
Message
sondavide View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 20/Ago/2012
Status: Offline
Points: 6
Post Options Post Options   Thanks (0) Thanks(0)   Quote sondavide Quote  Post ReplyReply Direct Link To This Post Topic: Copiare intero .txt in editbox VC++
    Posted: 20/Ago/2012 at 15:46
Ciao a tutti, avrei bisogno di un aiuto!!!
Vorrei che il mio programmino prelevi il testo da un file .txt e lo scriva nel Text di una editbox...


Ho cercato un po' in giro, ma con VC++ sono davvero una schiappa... non ci sarebbe qualcosa in stile C?

In alternativa mi accontento anche di una funzione che si limiti ad aprire il file di testo (come se ci avessi cliccato due volte sopra per intenderci...)

Big smile
Back to Top
Sponsored Links


Back to Top
valeria.dea View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 22/Mar/2011
Status: Offline
Points: 3
Post Options Post Options   Thanks (0) Thanks(0)   Quote valeria.dea Quote  Post ReplyReply Direct Link To This Post Posted: 20/Ago/2012 at 16:07
Ciao sondavide,
ma hai provato in qualche modo o hai proprio bisogno di capire come dovresti fare?

Io non sono un portento, ma mi accingerei in questa maniera:
- utilizzerei le API di windos per aprire e leggere il file (openfile, readfile....)
- la stringa che ti serve poi la assegni alla variabile che avrai creato collegata alla tua editbox
- e poi UpdateData(FALSE) per visualizzare il testo nella editbox.

Purtroppo ora non ho un pc con VS installato per provare a buttare giù 2 righe e confermarti il mio metodo.
Sempre se stai usando le librerie MFC....altrimenti nn saprei proprio aiutarti

Spero che qualcun altro ti illumini meglio

Ciao e facci sapere perchè la tua esperienza può essere utile a qualcuno nei tuoi panni Wink


Back to Top
sondavide View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 20/Ago/2012
Status: Offline
Points: 6
Post Options Post Options   Thanks (0) Thanks(0)   Quote sondavide Quote  Post ReplyReply Direct Link To This Post Posted: 20/Ago/2012 at 16:39
Sto utilizzando MFC app wizard (exe)
con visual faccio schifo, ho praticamente scritto tutte le funzioni in linguaggio C...

in stile C ho pensato di fare in questo modo:

...
...
  char parola[30];
  FILE* fp;
  fp=fopen("risultato.txt","r");


  CWnd* pWnd = GetDlgItem(IDC_text);
 
  while( fscanf(fp,"%s",parola)!=EOF)  
  pWnd->SetWindowText(parola);

...
...

il problema è che  la funzione SetWindowText cancella il testo presente nella editbox e lo sostituisce con la nuova parola... insomma nella editbox rimane solo l'ultima parola presente nel testo...

non esiste una funzione simile a SetWindowsText che scriva in append?

Purtroppo le API di windows non le ho mai usate :(
Back to Top
valeria.dea View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 22/Mar/2011
Status: Offline
Points: 3
Post Options Post Options   Thanks (0) Thanks(0)   Quote valeria.dea Quote  Post ReplyReply Direct Link To This Post Posted: 20/Ago/2012 at 20:13
Ciao,
dovrebbe essere che lo cancella perchè tu riscrivi ogni volta qualcosa nella variabile "parola".
Dovresti invece utilizzare una funzione che ti concatena il testo che vuoi inserire.
Dovrebbe essere qualcosa tipo "append"


Back to Top
valeria.dea View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 22/Mar/2011
Status: Offline
Points: 3
Post Options Post Options   Thanks (0) Thanks(0)   Quote valeria.dea Quote  Post ReplyReply Direct Link To This Post Posted: 20/Ago/2012 at 20:41
Scusami mi sono accorta di non aver letto bene il tuo post quindi ti ho risposto con argomenti che avevi già detto tu.
Ho trovato questa funzione
UINT WINAPI GetDlgItemText(
  _In_   HWND hDlg,
  _In_   int nIDDlgItem,
  _Out_  LPTSTR lpString,
  _In_   int nMaxCount
);

potresti appendere alla lpString che ottieni dalla tua editbox la parola che peschi dal file e poi usare il SetWindowsText come hai già fatto ma con la stringa intera. praticamente riscriverla ogni volta, anche perchè non credo si possa fare altrimenti (se qualcuno sa che sto dicendo una cavolata mi corregga).
Cioè io credo che comunque nella editbox tu debba far visualizzare un'unica stringa, non si dovrebbe poter concatenare stringhe diverse a livello di visualizzazione, ma dovresti crearne una unica prima e quindi concatenare prima di mandarla alla editbox.

Fammi sapere come va :)


Back to Top
sondavide View Drop Down
Nuovo Utente
Nuovo Utente


Joined: 20/Ago/2012
Status: Offline
Points: 6
Post Options Post Options   Thanks (0) Thanks(0)   Quote sondavide Quote  Post ReplyReply Direct Link To This Post Posted: 21/Ago/2012 at 11:52
Ho provato a concatenare l'intero testo in un'unica stringa, il risultato è un messaggio di errore con scritto "memoria insufficiente" Cry

Per il momento ho risolto creando un bottone che mi fa aprire e leggere direttamente il file di testo, ovviamente questo rende il mio programmino poco elegante...
Back to Top
 Post Reply Post Reply
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 10.17
Copyright ©2001-2013 Web Wiz Ltd.

This page was generated in 0,063 seconds.