Moin,
ich versuche hier ein paar
CSV-Dateien aus einem Datev-Export in einer neuen Textdatei zusammen zu fassen (der Anwender soll nachher nicht x-Mal den Imoportvorgang starten müssen).
Dazu lese ich aus einem Verzeichnis die darin enthaltenen Dateien ein und schiebe den Inhalt dann in ein memo um den Inhalt dann nachher in eine Datei zu exportieren.
Theoretisch funktioniert das auch, aber:
Ich will den Header aus den exportdateien nur einmal in meiner zusammengefassten Datei haben und irgendwie werden da auch Zeilen doppelt übertragen, ich weiß nur nicht wieso.
Hier mal der Code:
Delphi-Quellcode:
procedure TfDatevBuchungsstapelimport.ReadDatevCSV;
const sDir = '\\blabla\freigabe\pawi\import\datev\';
Var sl_files : TstringList;
sl_content : TstringList;
i,y : Integer;
begin
Screen.Cursor := crHourGlass;
sl_files := TstringList.Create();
GetFilesInDirectory(sDir, '*.txt',sl_files,False);
memo_datev.Lines.Clear;
memo_datev.Visible := False;
For I := 0 to sl_files.Count - 1 Do
Begin
sl_content := TstringList.Create();
sl_content.LoadFromFile(sDir+sl_files[i]);
// den Header aus der Exportdatei wollen wir nur einmal haben...
If I >0 Then sl_content.Delete(0);
memo_datev.Lines.AddStrings(sl_content);
sl_content.Free;
End;
If memo_datev.Lines.Text <> '' Then memo_datev.Lines.SaveToFile(sDir+'_Buchungen.csv');
If memo_datev.Lines.Text <> '' Then memo_datev.Lines.SaveToFile(sDir+'Buchungen.csv');
sl_files.Free;
Screen.Cursor := crDefault;
end;
Sieht hier jemand meinen Fehler?
Gruß