CEdit und LPTSTR
-
Hallo,
Ich habe folgendes Problem:
Programmiere gerade ein CEdit Feld,
ich möchte aus diesem Feld eine Zeile holen und die weiter verarbeiten lassen:*LPTSTR m_tszBuffer;
int m_nLineIndex = m_editText.LineFromChar(m_nEndChar);m_editText.GetLine(m_nLineIndex, m_tszBuffer);
CString m_csTmpText = CString((char ) m_tszBuffer);
Hier tritt mein Problem auf. Die Zeile, die ich weiter verarbeiten will,
wird in der CString Variable gespeichert.
Was mache ich hier falsch, dass in der CString m_csTmpText Variable, neben Text noch ein Haufen Müll steckt.
Ich habe schon versucht mit strcpy(...) LPTSTR m_tszBuffer in ein char * umzuwandeln geht aber nicht, direkte Übergabe von LPTSTR m_tszBuffer funktioniert auch nicht so wie ich es mir vorstelle.
Gibt es vielleicht eine Methode, die eine Zeile bzw. markierten Text aus CEdit
zurückliefert??
Laut MSDN gibt es nur diese hier...Gruss
bula
-
dein m_tszBuffer zeigt ins Nirgendwo.
machs sochar * buffer; int m_nLineIndex = m_editText.LineFromChar(m_nEndChar); buffer = new char[m_editText.LineLength(m_nLineIndex)+1]; m_editText.GetLine(m_nLineIndex, buffer); CString m_csTmpText(buffer); delete [] buffer;
Kurt
-
des musst du ganz anders machen.
des is halt die bauernmethode
λ[php][man]&[wur][isbn][java][e]alpha;ς≤≥≡ψΔ[cpp][code] [url][gg]site:msdn.microsoft.com [latex]
λ[php][man]&[wur][isbn][java][e]alpha;ς≤≥≡ψΔ[cpp][code] [url][gg]site:msdn.microsoft.com [latex]
λ[php][man]&[wur][isbn][java][e]alpha;ς≤≥≡ψΔ[cpp][code] [url][gg]site:msdn.microsoft.com [latex]
λ[php][man]&[wur][isbn][java][e]alpha;ς≤≥≡ψΔ[cpp][code] [url][gg]site:msdn.microsoft.com [latex]
λ[php][man]&[wur][isbn][java][e]alpha;ς≤≥≡ψΔ[cpp][code] [url][gg]site:msdn.microsoft.com [latex]
λ[php][man]&[wur][isbn][java][e]alpha;ς≤≥≡ψΔ[cpp][code] [url][gg]site:msdn.microsoft.com [latex]
λ[php][man]&[wur][isbn][java][e]alpha;ς≤≥≡ψΔ[cpp][code] [url][gg]site:msdn.microsoft.com [latex]
λ[php][man]&[wur][isbn][java][e]alpha;ς≤≥≡ψΔ[cpp][code] [url][gg]site:msdn.microsoft.com [latex]
-
ok, das o.g. Problem habe ich jetzt gelösst,
weiss zufällig jemand, ob die Klasse CEdit irgendeine Methode anbietet,
die den Selektierten Text zurückliefert.m_editText.GetSel(m_nStartChar, m_nEndChar);
Also Text zwischen m_nStartChar, m_nEndChar ??
-
Meinst du GetWindowText()?
-
m_editText.GetSel( m_nStartChar, m_nEndChar ); if( m_nStartChar > 0 ) { CString sText; m_editText.GetWindowText( sText ); MessageBox( sText.Mid( m_nStartChar - 1, m_nEndChar - m_nStartChar ), "Text", MB_OK ); }
-
Die Vorgehensweise von Airdamn funktioniert einwandfrei.
Das einzige Problem ist das mein Text > 2 MB gross ist, und ich daraus
nur einzelne Wörter bzw. Sätze extrahieren möchte.
In diesem Fall hole ich, aber immer den ganzen Textinhalt,
was nicht so effizient ist :(.
Ich dachte bloss, dass der Text sowieso in der CEdit Klasse gehalten wird
und somit man daraus den selektierten Bereich direkt holen könnte.
Oder meint ihr, solche Methode würde das gleiche machen, wie die von Airdamn?