Guten Tag,
sollte das bereits besprochen worden sein, so bitte ich um Verzeihung, ich habe das nicht gefunden.
Bin grundsätzlich eher der ersteinmal Suchtyp
Ziel ist es einen Text aus einem Memo in einen String umzuwandeln, den ich dann in eine Zelle eines StringGrids kopieren kann.
In meiner eigentlichen Function mach ich noch etwas mehr mit s bevor ich das an Result übergebe. Ich ersetzte dort je Zeile bestimmte Platzhalten in geschweiften Klammern. Daher muss ich diese MemoToString umwandlung hier so manuell machen (denke ich jedenfalls).
Nun das Problem. Die Function lief sehr lange einwandfrei. Habe ausschließlich bei diesem Projekt D2007 eingesetzt.
In den einzelnen Zellen des Stringgrids waren die Zeichen CHR(13) + Chr(10) als versteckte Zeichen nicht angezeigt. Habe ich aber das StringGrid als
CSV exportiert und dann in Excel geladen, war alles wunderbar.
Nun musste ich meinen Rechner neu aufsetzen und somit auch D2007 neu installieren. Nach einer Änderung am Code an einer ganz anderen Stelle und dem nachfolgenden Compiling liefert die unten dargestellte Function nun sichtbare Quadrate (quadratische Zeichen) direkt im Text. Die sind also nicht mehr versteckt. Das führte dazu, dass der empfänder meiner exportieren
CSV die Zeilenumbrüche (import unter Linux in eine Datenbank) nicht mehr als solche erkannte.
Wir haben das Problem zwar auf der Linux-Seite jetzt beheben können, also den Zeilenumbruch nun anders interpretiert, aber das Verhalten beunruhigt mich dennoch. Warum liefert D2007 (ggf. war da irgendwo ein neueres Update zwischen) nun eine andere Stringdarstellung.
+ Chr(13) + Chr(10) ist doch der Windows - Standard Zeilenumbruch, oder?
Delphi-Quellcode:
function MemoToString(aMemo: TMemo): String;
var i: Integer;
begin
Result := '';
for i := 0 to aMemo.Lines.Count - 1 do
begin
Result:= Result + aMemo.Lines[i];;
if i < aMemo.Lines.Count - 1 then Result := Result + Chr(13) + Chr(10);
end;
end;
Falls ich mal ein "DANKE" vergesse, hier schon mal eins im Voraus: Danke für Eure Zeit!