neues thema:Auslesen aus Edit-Box



  • edit:hab die alte Frage mal gelöscht, war eh peinlich 😃



  • Peinlich. erst denken, suchen, dann posten. Hab grad gesehen dass es dazu FAQ-Einträge gibt 🙄
    Ich merks mir fürs nächste Mal.

    Jetzt ist jedoch ein neues Problem aufgetreten:

    .
                        .
                        .
    case WM_CREATE:
    		{
    
    			ifstream input("d:\\beispiel.txt",ios::in);
    			while(!input.eof())
    			{
    				getline(input,strTemp);
    				strText += strTemp+"\r\n";
    			}
    			input.close();		
    			hEdit = CreateWindowEx(	WS_EX_CLIENTEDGE,
    									"edit",					
    									strText.c_str(),
    									WS_CHILD|WS_VISIBLE|WS_VSCROLL|ES_MULTILINE|ES_AUTOVSCROLL,
    									0,0,0,0,
    									hWnd,
    									NULL,
    									((LPCREATESTRUCT)lParam)->hInstance,
    									NULL);
    
    			return 0;
    		}
    case WM_CLOSE:
    		{
    			ofstream output("d:\\beispiel.txt",ios::out);
    			if(!output) return -1;
    
    			output << strText;
    			output.close();
    			DestroyWindow(hWnd);
    			return 0;
    		 }
                        .
                        .
                        .
    

    Meine Absicht ist es, die in der Editbox vorgenommenen Änderungen abschließend zu speichern. Das Einlesen funktioniert jetzt einwandfrei. Jedoch werden 1. die "\r\n" im Wordpad mit so einem kleinen Quadrat ersetzt ( eine Art Zeilenumbruch nehm ich an? Ich will ihn da aber nicht haben... ) und 2. Keine Änderungen, die in der Editbox vorgenommen wurden, übernommen. Das Erste ist nicht so wichtig, das wesentliche Problem ist erstmal das Zweitere. Kann mir jemand einen Tip geben warum das nicht funktioniert? Ich hab diesmal auch ganz bestimmt die FAQ und gogle vorher bemüht 🙄



  • Also auch dieses Problem hat sich geklärt. Ich hätt heut einfach im Bett bleiben und Überstunden abbauen sollen 😃
    Es ist vielleicht keine dumme Idee, die Zeilen

    GetWindowText(....)
    

    unterzubringen, wenn man den Inhalt der Editbox auslesen will. 😡
    Ich glaub ich geh heut eher heim...Selbstgespräche kann ich auch da führen, dafür brauch ich kein Forum 😃



  • 🕶



  • Jetzt besteht allerdings immer noch folgendes Problem: Wie im Code ersichtlich, lese ich den Text erst zeilenweise ein und hänge brav an jede Zeile ein "\r\n" an, damit es in der Editbox auch ordentlich aussieht. Wenn ich diesen String jedoch abspeichere, wird genau dieses "\r\n" in Form eines kleine Quadrates mit gespeichert ( also wie eine Art Zeilenumbruch ). Lese ich dagegen keinen Text ein, sondern speichere nur den selbst in der EB eingegebenen, dann ist natürlich alles wunderbar. Hat jemand vielleicht eine Idee wie ich diese lustigen kleinen "Quadrate" loswerde?



  • z.B. das Editfeld nach dieser Kombination durchsuchen und einfach schön rausschmeißen?! Oder guck mal bei http://www.winapi.net/index.php?inhalt=s10 an... evt. einfach so die Zeilen hinzufügen 😃



  • jo ich fülle meine list und comboboxen auch lieber per sendmessage(..),
    das ist einfacher übersichtlicher und man kann auch viel besser mit den einzelnen einträgen arbeiten 🙂

    while( FS.eof() != true)
    {
        FS.getline( temp, 30);
        SendMessage( hListBox_, CB_ADDSTRING, 0, (LPARAM) temp);
    }
    

    einfach wirkungsvoll und du kommst auch net mit irgend welchen newline zeichen ins gehege.

    hoffe konnte dir weng helfen

    cYa CAD



  • Du meinst mit speichern das Speichern von strText in deiner EditBox, oder in einem Textfile? Normalerweise passt das mit \r\n, aber hast du es mal nur mit \n versucht?



  • OK das Problem ist gelöst 🙂
    @ flenders: Ich wollte aus einem Textfile in die EditBox einlesen ( also darin anzeigen lassen ), ggf. Veränderungen vornehmen und dann den Inhalt der Edit
    Box in einem Textfile speichern. Das Problem war, dass ich das TextFile zeilenweise einlese, und deswegen muss an jedes Zeilenende ein \r\n weil das sonst in der EditBox nicht korrekt dargestellt wird. Das \r ist jedoch dann hinderlich, wenn man den gesamten String in einem TextFile speichern möchte. Das war so in etwa mein Problem 🙂
    @ MasterCAD: Die Idee klingt recht interessant, ich habe es auch versucht. Aber wenn ich das richtig mitbekommen habe, funktioniert das nur für ComboBoxen, nicht für EditBoxen?? Bei meiner EditBox auf jeden Fall nicht...
    @ (D)Evil : Genau das habe ich getan. Ich hatte das für zu umständlich gehalten und dachte, dass für dieses Problem eine nette Funktion oder so vorhanden ist. Aber "Handarbeit" funktioniert immer 🙂 Lass jetzt vor dem Abspeichern alle \r rausschmeissen und jetzt geht es.

    Ich danke euch allen für eure Hilfsbereitschaft und Ratschläge 👍


Anmelden zum Antworten