Entwickler-Ecke
Dateizugriff - Fehler beim Import
NoEon - Mi 08.09.04 09:28
Titel: Fehler beim Import
Hallo Ng's
da gibts was...
und zwar..
Import CSV in Paradox Tabelle // leidiges Thema ich weiss//
Aber umso wichtiger für mich. ;-)
Ich kann meine CSV Datei importieren wohin ich will, das ist ekin Problem.
Doch jetzt kommts, die Warenwirtschaft ist so "toll" das sie in einigen Langtexten un Anderen Felden ";" meinen Feldseperator mal einfach drinne hat
Das heisst das dann der String schon an dieser Stelle abgeschnitten wird.
Das ist ziemlich doof. Weil so kann ich keine 4300 Datensätze Fehlerfrei Importieren. wie kann ich das umgehen.
Mir fehlt der Gedankliche Ansatz!
Help!
Gruss
Lars
Mein Code sieht so aus..
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56:
| procedure TForm1.Button1Click(Sender: TObject); var T: TextFile; instring: String; aTrennPos: ShortInt; aTempStr: String; aFeldNr: ShortInt; aFilename : string; aCounter: integer; begin
table1.Open; if opendialog1.Execute() then aFilename := openDialog1.FileName ; AssignFile(T,aFilename ); Reset(T); Readln(T,instring); aCounter:= 0;
while not EOF(T) do begin readln(T,instring); instring:= instring + ';' ; inc(aCounter); if (aCounter mod 100)= 0 then begin StaticText1.Caption:= Format('SatzNr: %9d eingelesen',[aCounter]); StaticText1.Update end;
aFeldNr:= 0; aTrennPos:= Pos(';',instring); table1.Append; while aTrennPos > 0 do begin inc(aFeldNr); aTempStr:= Copy(instring,1,aTrennPos-1); table1.Fields[aFeldNr].AsString := aTempStr; Delete(instring,1,aTrennPos); aTrennPos:= Pos(';',instring); end; Table1.Post; end; CloseFile(T); table1.close;
StaticText1.Caption:= Format('SatzNr: %9d eingelesen',[aCounter]); StaticText1.Update; ShowMessage(Format('Import von %s beendet',[aFilename])); end;
end. |
Moderiert von
UGrohne: Code- durch Delphi-Tags ersetzt.
smiegel - Mi 08.09.04 11:16
Hallo,
erzeugst Du die Importdatei selbst oder wird sie Dir zur Verfügung gestellt?
Was spricht dagegen, die einzelnen Felder durch ein Tab oder ein anderes Zeichen zu trennen, das nicht im Feldinhalt vorkomnmt? Oder, die einzelnen Feldinhalte in Anführungszeichen zu setzen?
NoEon - Mi 08.09.04 13:14
es ist so das ich die Datei zur Verfügung gestellt bekomme. Allerdings als Excel, und ich muss mir erst die CSV datei draus machen um sie einzulesen.
wie wäre es besser.? Kann ich Excel Sagen das er mir n anderes Feld-Trennerzeichen geben soll?!
Wenn ich mir das mal anschaue dann ist es Sinnvoll die Texte in "" zu fassen... hmm wie mach ich das den in dem Text den ich habe?!
Einfach austauschen?!
gruss
lars
grayfox - Mi 08.09.04 17:46
hallo lars!
| Zitat: |
| Allerdings als Excel, und ich muss mir erst die CSV datei draus machen um sie einzulesen. |
dann hat du ja ohnehin die ganze import-file-steuerung in deiner hand
- einfach das ganze arbeitsblatt markieren - ersetzen strichpunkt durch zb beistrich
ich kenne nur beim import die möglichkeit, die trennzeichen auszuwählen, beim export muss ich passen.
| Zitat: |
| Wenn ich mir das mal anschaue dann ist es Sinnvoll die Texte in "" zu fassen |
wozu? gefällt dir das, wenn zb die artikelbezeichnung in anführungszeichen steht?
vor allem bei textfeldern, die genau auf die benötigte länge zugeschnitten sind, kommt dann immer freude bei
führenden anführungszeichen auf :D
Delphi-Quelltext
1:
| tmpText:= copy(ImportText,2,Length(ImportText)-2) |
und schon passt es wieder ;)
mfg, stefan
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!