Hallo zusammen,
es ist Freitag und vllt. Zeit für eine Frage neben dem täglichen Stress.
In der letzten Woche bin ich über einen der nicht auszurottenden Fehler gestoßen, eine Vis. Komponente als Datenspeicher mißbrauchen. Und zwar war folgendes:
Delphi-Quellcode:
procedure procc(const l1:tstrings);
var
ll : tstrings;
begin
ll:=tstringlist.Create;
{fülle ll}
for i:=0 to ll.count-1 do
if pos('irgendwas',ll[i])>0 then l1.add(ll[i]); {!BP!}
ll.free;
end;
Ist natürlich nicht der Originalcode, aber es reicht.
Irgendwo im programm gab es dann ein
procc(memo1.lines);
und ein for
i:=0 to l2.count-1 do ..
wobei l2 natürlich auch einen Bezug zu Memo1.Lines hat. Hier waren die Ergebnisse nun überhaupt nicht so wie ich es erwartet hatte, mit ein wenig Debuggerbenutzung bin ich dann auf folgendes gestoßen:
nach BP habe ich folgende Dateninhalte:
ll[0] = 'ganz schön langer string mehr als 255 Zeichen'
ll[1] = 'ganz schön langer string1 mehr als 255 Zeichen'
ll.Text = 'ganz schön langer string mehr als 255 Zeichen'x0Dx0A'ganz schön langer string1 mehr als 255 Zeichen'x0Dx0A
l1.Text = 'ganz schön langer string mehr als 255 Zeichen'x0Dx0A'ganz schön langer string1 mehr als 255 Zeichen'x0Dx0A
l1[0] = 'ganz schön langer'
l1[1] = 'string mit mehr als'
l1[2] = '255 Zeichen'
l1[3] = 'ganz schön langer' ... usw
Klar ist mir daß der "Zeilenumbruch" der Darstellung des TMemo geschuldet ist, doch müßte es doch dann korrekter Weise auch in .Text zu finden sein:
Code:
'ganz schön langer'x0Dx0A'string mit mehr als'x0Dx0A'255 Zeichen'
und eben das ist nicht der Fall.
habt Ihr dafür eine schlüssige Erklärung?
Gruß
K-H