Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Absätze aus Text.csv zwischen Semikolons entfernen (https://www.delphipraxis.net/82189-absaetze-aus-text-csv-zwischen-semikolons-entfernen.html)

moperswings 8. Dez 2006 10:39


Absätze aus Text.csv zwischen Semikolons entfernen
 
Hallo an ALLE!

Der Inhalt mehrerer Memos soll zwischen Semikolons in einer *.csv gespeichert werden.
Wenn aber in einem Memofeld ein Absatz gemacht wird, wird dieser Absatz auch in der *.csv gespeichert - und das geht natürlich nicht, weil ja sonst meine Stuktur der Datei kaputt geht und ich so den Inhalt nicht mehr in eine db einlesen kann.
Also dachte ich mir, ich zähle die Semikolons und zwischen zwei Semikolons werden die Absätze rausgenommen, bevor die nächsten Daten in die Datei geschrieben werden. Die einzelnen Programmteile für sich funktionieren, nur wenn ich alles zusammenfüge, läuft es nicht - und ich sehe nicht, warum. Wahrscheinlich gibt es auch eine einfachere Lösung und meine ganze Struktur ist generell falsch.
Vielleicht kann mir ja jemand helfen...
Viele Grüsse, moperswings

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
        f: textfile;
        wert_memo: string;
        filename: string;
        i: integer;
        semikolon: integer;
        absatz: TStringlist;
begin
        filename := 'datensatz.csv';
        assignfile(f, filename);
        {i-}
        append(f);
        {i+}
        if IOResult <> 0 then begin
        showmessage('Fehler!');
        exit;
        end;
        wert_memo := memo1.Text;
        writeln(f,';' + memo1.text + ';' );
        closefile(f);
       
        // Datei wird geöffnet um die Absätze zu überprüfen
        filename := 'datensatz.csv';
        assignfile(f, filename);
        reset(f);
        // Semikolon zählen
        semikolon := 1;
        for i:=1 to length(filename)
        do begin
           if filename[i] in [';'] then begin
           //Absätze rausnehmen
           absatz := tstringlist.create;
           absatz.LoadFromFile('datensatz.csv');
           absatz.Text := stringreplace (absatz.Text,#13#10,'',[rfreplaceall]);
           absatz.SaveToFile('datensatz.csv');
           semikolon := semikolon + 1;
           end;
           // Semikolons sind gezählt

           if semikolon = 2 then begin
           // Mit Label wird getestet
           label1.caption := inttostr(semikolon);
           end;
        end;
        closefile(f);
       
end;

mkinzler 8. Dez 2006 10:42

Re: Absätze aus Text.csv zwischen Semikolons entfernen
 
Ersetzte doch die LineFeed-Steuerzeichen bevor du sie in die csv schreibst.

moperswings 8. Dez 2006 12:59

Re: Absätze aus Text.csv zwischen Semikolons entfernen
 
Im Memo einfach das wantreturns abschalten!
Dass Leben kann so einfach sein!
Schönes Wochenende
moperswings


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz