text ein/auslesen?
-
DANKE

und reinschreiben?
wo ich grad dabei bin, GetWindowText braucht ja ne zeichenanzahl, wie kann ich also vorher die länge des zu lesenden textes rausfinden?
? WTF ?char *toLoad; GetWindowText(loadEdit, toLoad, 10);wiesooooo ? ist toload leer? wieso werden die daten aus loadEdit nicht reingeladen?
menno
-
Weil erstmal der zu lesende Bereich selektiert werden muß:
// Text an die Editbox anhängen: // an das Ende springen SendMessage (edbx, EM_SETSEL, (WPARAM)-2, (LPARAM)-2); // Text anhängen SendMessage (edbx, EM_REPLACESEL, (WPARAM)0 , (int)string); // text aus der editbox holen: SendMessage (edbx, WM_GETTEXT, sizeof(string), (int)string); // text in die editbox setzen: SendMessage (edbx, WM_SETTEXT, sizeof(string), (int)string); // allen Text in Editbox ersetzen SendMessage (edbx, EM_SETSEL, (WPARAM)0, (LPARAM)-1);Sind jetzt nur Beispiele, kein vollständiger Code.
Blackbird
-
So kriegst du den Text:
int nLen = SendMessage(hwndEdit, WM_GETTEXTLENGTH, 0, 0); TCHAR *pText = new TCHAR[nLen +1]; pText[nLen] = 0; // Macht wahrscheinlich auch das Control selber, aber wir gehen am besten sicher SendMessage(hwndEdit, WM_GETTEXT, (WPARAM)nLen+1, (LPARAM)pText);
-
reinschreiben:
bool SaveToFile(char *file, char cont) { FILE *tosave; tosave = fopen(file, "w"); if(fwrite(&cont , sizeof(cont), sizeof(cont), tosave)) { return TRUE; } return FALSE; }nur gibts nun nen memory fehler...ich denke das liegt an den sizeofs...was muss da denn rein?
-
- du übergibst nur ein einzelnes zeichen (char) möchtest vermutlich deinen buffer speichern
- du möchtest binär ein eine datei schreiben die du nicht binär geöffnet hast
- zweites sizeof ist eigentlich die anzahl der datensätze die geschrieben werden sollen// binär void SaveToFile(char *pFilename, char *pBuffer, int nSize) { FILE *file; if(!(file= fopen(pFilename, "wb"))) fwrite(pBuffer, nSize, 1, file); fclose(file); }// normaler text void SaveToFile(char *pFilename, char *pBuffer) { FILE *file; if(!(file= fopen(pFilename, "w"))) fprintf(file, "%s", pBuffer); fclose(file); }beides ungetestet
-
if(LOWORD(wParam)==2) { char toSave = NULL; char Content = NULL; GetWindowText(loadEdit, &toSave, 255); GetWindowText(textField, &Content, 255); MessageBox(NULL, &Content, &toSave, 0); SaveToFile(&toSave, &Content, sizeof(&Content)); }damit ru fich die funktion auf.
void SaveToFile(char *pFilename, char *pBuffer, int nSize) { FILE *file; if(!(file= fopen(pFilename, "wb"))) fwrite(pBuffer, 1, nSize, file); fclose(file); }das ist die funktion. oft wird zwar ne datei erstellt, deren name ist aber nur ein buchstabe oder ein wirrwar von zeichen, aussdem enthält sie nichts! ?!?!?!

-
habs fast perfekt hingekriegt ^^
-
pixartist schrieb:
char toSave = NULL; char Content = NULL; GetWindowText(loadEdit, &toSave, 255); GetWindowText(textField, &Content, 255); MessageBox(NULL, &Content, &toSave, 0); SaveToFile(&toSave, &Content, sizeof(&Content));Du solltest dich mal mit Speicher-Reservierung und Pointern beschäftigen - da wird einem ja schon fast schlecht

-
...ein Wunder das er nicht auch noch vor die Zahlenkonstanten ein '&' gemacht hat

-
Seid nicht so eklig zu ihm. Jede war mal ein Anfänger

-
menno
wenn die doh alle nur zeiger wollen 

edit btw.: das sieht jetzt so aus:
if(LOWORD(wParam)==2) { toSave = new char[GetEditTextLength(loadEdit)]; Content = new char[GetEditTextLength(textField)]; if(GetEditTextLength(loadEdit) != 1) { GetWindowText(loadEdit, toSave, GetEditTextLength(loadEdit)); GetWindowText(textField, Content, GetEditTextLength(textField)); SaveToFile(toSave,Content, sizeof(Content)); } else { if(GetEditTextLength(fileZeiger) != 1) { GetWindowText(fileZeiger, toSave, GetEditTextLength(fileZeiger)); GetWindowText(textField, Content, GetEditTextLength(textField)); SaveToFile(toSave,Content, sizeof(Content)); } else { MessageBox(NULL, "Keine Datei angegeben!", "Fehler", 0); } } }
-
sizeof(Content) gibt immer 4 zurück - das ist sicher nicht das, was du willst.
Nimm stattdessen lieber lstrlen(Content)