Einzelnen Beitrag anzeigen

moperswings

Registriert seit: 27. Mai 2004
Ort: Bad Sooden-Allendorf
240 Beiträge
 
Delphi 6 Professional
 
#1

Absätze aus Text.csv zwischen Semikolons entfernen

  Alt 8. Dez 2006, 10:39
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;
  Mit Zitat antworten Zitat