![]() |
csv Datei bearbeiten
Hallo,
ich hab ein Problem und hoffe, dass mir jemand helfen kann - da ich mir mal wieder selber im weg stehe. Ich gebe in ein MaskEdit Feld eine Zahl ein, diese Zahl wird in einer csv Datei gesucht und wenn diese gefunden wird, werden 9 weitere Edit und MaskEdit Felder mit Werten gefüllt - bis dahin alles ok. Nun wird in einem der Edit und/oder MaskEdit Felder ein Wert geändert. Jetzt soll die Zeile, die in der cvs Datei steht mit den geänderten Werten angepasst werden. Ich hatte schon diverse Ansätze, finde aber keinen funktionierenden Weg oder bleibe auf der halben Strecke liegen. Ich kann die geänderte Zeile an die Datei anfügen, damit habe ich aber noch die alte Zeile in der Datei stehen. Ich habe die Funktion EXPLOED aus diesem Forum benutzt, um mir die einzelnen Felder in ein Array einzulesen ... aber ich weiss nicht weiter ... :wall: Kann mir jemand helfen ?? Gruss ascotlx |
Re: csv Datei bearbeiten
probier einfach was anderes, z.B.
Delphi-Quellcode:
file of integer
So zu verwenden:
Delphi-Quellcode:
assignfile(f,filename); //Dateinamen zuweisen.
reset(f); //Datei öffnen. seek(f,newpos); //An eine bestimmte Position springen. filepos(f); //Gibt die Position in der Datei zurück. read(f,v); //Liest ein Element der Datei (bei file of integer 4 Byte) in v ein. write(f,v); //Schreibt v in die Datei. Das ursprüngliche Element wird überschrieben. closefile(f); //Datei schliessen. rewirte(f); //Datei wird erstellt/überschrieben und dann geöffnet. erase(f); //Datei wird gelöscht. Nur möglich wenn nicht geöffnet. filesize(f); //gibt die Anzahl der Blöcke in der Datei zurück. eof(f); //gibt ein Bool zurück, ob das Dateiende erreicht wurde. |
Re: csv Datei bearbeiten
CSV Dateien haben keine feste Satzlänge.
Deshalb gibt es nur 2 Möglichkeiten eine CSV-Datei zu verändern.
aber es fehlt nicht mehr viel dazu. ![]() |
Re: csv Datei bearbeiten
moin ,
danke für die Hilfe ... falls es jedemanden interessiert, meine Lösung (bestimmt nicht schön .. funkioniert aber) Ich arbeite nun mit einer Zwischendatei ...
Delphi-Quellcode:
Gruss
procedure kddaten_schreiben(const Ergebnis: integer);
var zeile, file_in, file_out: string; begin file_in:='c:\text.txt'; file_out:='c:\text2.txt'; if erg < 99 then // erg wird in einer anderen prozedur gesetzt begin // zwischendatei anlegen AssignFile(mc_filename2, 'c:\mc_liz_kd2.txt'); {$I-}Rewrite(mc_filename2);{$I+} if IOResult>0 then ShowMessage('Fehler beim Anlegen der Zwischendatei'); // kunden daten datei öffnen AssignFile(mc_filename, 'c:\mc_liz_kd.txt'); {$I-}Reset(mc_filename);{$I+} if IOResult=0 then // bis zum ende der datei zeileweise lesen while not Eof(mc_filename) do begin Readln(mc_filename,zeile); if Pos(hdl,zeile) <> 1 then writeln(mc_filename2,zeile); end; // geänderte Zeile schreiben writeln(mc_filename2,frm_liz_mgr.MaskEdit4.Text+';'+frm_liz_mgr.MaskEdit5.Text+';'+frm_liz_mgr.Edit6.Text+';'+frm_liz_mgr.Edit7.Text+';'+frm_liz_mgr.MaskEdit1.Text+';'+frm_liz_mgr.Edit8.Text+';'+frm_liz_mgr.Edit9.Text+';'+frm_liz_mgr.Edit10.Text+';'+Trim(frm_liz_mgr.MaskEdit2.Text)+';'+Trim(frm_liz_mgr.MaskEdit3.Text)+';'); CloseFile(mc_filename); CloseFile(mc_filename2); // Alte Datei löschen, Zwischendatei umkopieren deleteFile(file_in); RenameFile(file_out,file_in); end; // kunden daten datei öffnen AssignFile(mc_filename, 'c:\mc_liz_kd.txt'); {$I-}Append(mc_filename);{$I+} if IOResult=0 then begin if erg = 100 then writeln(mc_filename,frm_liz_mgr.MaskEdit4.Text+';'+frm_liz_mgr.MaskEdit5.Text+';'+frm_liz_mgr.Edit6.Text+';'+frm_liz_mgr.Edit7.Text+';'+frm_liz_mgr.MaskEdit1.Text+';'+frm_liz_mgr.Edit8.Text+';'+frm_liz_mgr.Edit9.Text+';'+frm_liz_mgr.Edit10.Text+';'+Trim(frm_liz_mgr.MaskEdit2.Text)+';'+Trim(frm_liz_mgr.MaskEdit3.Text)+';'); end; CloseFile(mc_filename); end; ascotlx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz