Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Zeile aus dem RichEdit-feld auslesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.05.2005, 17:02 Uhr
RedEagle



Hi
Wie kann ich die zeile, in der gerade gearbeitet wird, aus dem Richedit-feld auslesen??

Ich hab hier ein Code, aber irgendwie Bekomme ich da nichts aus dem Feld raus...

C++:
//Aktuelle Position: Var erstellen und aus Controll holen
       static CHARRANGE crCurrent;
       SendMessage(hwnd,EM_GETSEL,(LPARAM)&crCurrent.cpMin,(WPARAM)&crCurrent.cpMax);
    
       //Aktuelle Zeilennummer holen:
       long Line = (long)SendMessage(hwnd,EM_LINEFROMCHAR,crCurrent.cpMax,0);
       //Globalen Wert für Zeilenbeginn holen:
       long LineBegin =(long) SendMessage(hwnd,EM_LINEINDEX,Line,0);
       //Länge der Zeile holen:
       int LineLength =(int) SendMessage(hwnd,EM_LINELENGTH ,LineBegin,0);

       //Komplette erste Zeile einlesen:
       char* LineBuffer = new char[LineLength+2];
       SendMessage(hwnd,EM_GETLINE,Line,(LPARAM)LineBuffer);


--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.05.2005, 18:17 Uhr
RedEagle




C++:
//Aktuelle Position: Var erstellen und aus Controll holen
       static CHARRANGE crCurrent;
       SendMessage(hwnd, EM_GETSEL, (LPARAM)&crCurrent.cpMin, (WPARAM)&crCurrent.cpMax);
    
       //Aktuelle Zeilennummer holen:
       long Line = (long)SendMessage(hwnd, EM_LINEFROMCHAR, crCurrent.cpMax, 0);
       //Globalen Wert für Zeilenbeginn holen:
       long LineBegin =(long) SendMessage(hwnd, EM_LINEINDEX, Line, 0);
       //Länge der Zeile holen:
       int LineLength =(int) SendMessage(hwnd, EM_LINELENGTH, LineBegin, 0);

       //Komplette erste Zeile einlesen:
       char* LineBuffer = new char[LineLength+2];
       SendMessage(hwnd, EM_GETLINE, Line-1, (LPARAM)LineBuffer);
       //SendMessage(hwnd, EM_GETLINE, Line, (LPARAM)LineBuffer);
      
       //TEST
       ofstream out;
       out.open(".\\debug.txt",ios::app);
       out <<" "<< LineBuffer;
       out.close();



Wenn ich diesen code Kompiliere,
Und in das Feld folgendes Eintrage:

Code:
123456789
abcdefghijk
-_-_-_-_-_-_-
#1#1#1#1#1
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
123456789123456789123456789
abcdefghijklmnopqrstuvwxyz


Dann steht in der debug.txt:

Code:
                                                                                                                      ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
                                                                                 123456789123456789123456789
123456789123456789123456789
123456789123456789123456789
123456789123456789123456789
123456789123456789123456789
123456789123456789123456789
123456789123456789123456789


Was ist mit den ersten zeilen, und was mit der Letzten??
UND warum werden erst alle Leerzeichen ausgegeben, und dann die Werte, die eigentlich zwischen der Leerzeichen stehen sollten??
--
MFG RedEagle

Dieser Post wurde am 06.05.2005 um 18:18 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.05.2005, 20:13 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


hmm kann sein das es da ansi<->oem konvertierschwierigkeiten gibt
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.05.2005, 20:52 Uhr
RedEagle



Was ist "oem"??
Und was kann man dagegen tun??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.05.2005, 00:09 Uhr
RedEagle



Könnte es evtl daran liegen, das ich das unter "case WM_CHAR:", bei dem Textfeld, habe??
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.05.2005, 09:37 Uhr
RedEagle



Mal so ne Frage: Wonach muss ich bei google suchen, wenn ich Informationen über das RichEdit-feld haben möchte??

Wenn ich bei Google:

Suchbefehl:
richedit -Delphi -VB -Assembly -Borland -Pascal -MFC

eingebe, bekomme ich keine seiten, in der Sowas in C++ Beschrieben ist, nur in semtlichen anderen Sprachen, die ich nicht ausgeschlossen habe (PHP, Basic, ...) Und seiten, mit einer Nicht leserlichen sprache (Japanisch, Fanzösich,...)
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.05.2005, 09:39 Uhr
Oliver
S2-Pixelgeneral


OEM ist afaik nen anderer Zeichensatz.
Evtl. hilft dir OemToChar weiter?
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.05.2005, 09:46 Uhr
RedEagle



mmm


C++:
       OemToChar(LineBuffer/*in*/, LineBuffer/*out*/);
      
       //MessageBox(NULL,LineBuffer,"",NULL);
       ofstream out;
       out.open(".\\debug.txt",ios::app);
       out << LineBuffer << endl;
       out.close();



Jetzt wird zwar was in die debug.txt geschibenen, aber nicht das Zeichen, das ich eingegeben habe,m sondern nur ein Leerzeichen
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: