Autor |
Beitrag |
colaka
      
Beiträge: 200
Erhaltene Danke: 4
Win XP, W7
Delphi 2005 Prof.
|
Verfasst: So 04.01.09 19:38
Hallo,
ich erhalte von meinen Lieferanten Preislisten als Textdateien, die ich in Tabellen einlese. Bisher hatte ich nur Dateien, bei denen die einzelnen Spalten durch ein Semikolon getrennt waren. Da war es nicht schwer, die einzelnen Zeilen in Stücken bis zum Semikolon in die einzelnen Datenbankfelder zu übertragen.
Doch jetzt versuche ich eine Preisliste ohne Trennzeichen einzulesen, so wie die folgende:
Quelltext 1: 2: 3: 4:
| Hersteller_Artikelnummer Info4 Artikelnummer Bezeichnung Obergruppe_S1 Obergruppe_S2 Warengruppe_S1 Warengruppe_S2 Verpackungseinheit Lagermenge Verfügbarkeit Status_Typ Preis UST_Typ Länge Breite Höhe Info3 ArtikelText_S1 Nettogewicht Bruttogewicht Bildurl EAN ArtikelBez_S3 133313 Equip ADA0000334 Kab USB 1.1 Parallel Adapter für PC / equip Kabel+Adapter Cable+Adapter Adapter USB Adapter USB 40 78 0 0 5,67 0 0,117 0,283 0,027 http://www.equip-info.net/german/index.php?main=0&suche=133313&prod=1011&suche=133313 Key Features:• Konverter verbinden PCs (USB Schnittstelle) mit Peripheriegeräten ohne USB-Schnittstelle• Unterstützt Windows 98SE, ME, 2000, XP, Vista• Inkl. Setup CD• Verpackung: equip Blister • USB 1.1 Konverter A Stecker > IEEE-1284 Stecker parallel 0,1127 0,155 http://www.bcom.de/images/productshotspreisliste/173x218/A58588.jpg 4015867579862 Kabel USB 1.1 Parallel Adapter für PC DA-70118 Digitus ADA0002144 Kab USB 1.1 Digitus USB>PS-2 Adapter DA-70118 Kabel+Adapter Cable+Adapter Adapter USB Adapter USB 80 68 0 0 2,40 0 0,216 0,1 0,024 http://www.digitus.info/de/produkte/zubehoer/?c=1216&p=3510 Ultra kompaktes Adapterkabel • USB 1.1 und APM 1.2 kompatibel • 2 x Mini DIN 6-pin Buchse für Maus und Tastatur 0,0441 0,061 http://www.bcom.de/images/productshotspreisliste/173x218/A59421.jpg 4016032117933 Kabel USB 1.1 USB>PS-2 Adapter DA-70118 DA-70146 Digitus ADA0003892 Kab USB 2.0 Digitus Seriell Adapter DA-70146 Kabel+Adapter Cable+Adapter Adapter USB Adapter USB 40 152 0 0 5,81 0 0,091 0,136 0,052 http://www.digitus.info/de/produkte/zubehoer/?c=1216&p=3530 • Entspricht dem USB 2.0 (USB 1.1) Standard • Unterstützt RS 232 serial Interface • Maximale Datentransferrate von über 1Mbps • Einsetzbar für PDA und Modems • USB Verlängerungskabel wird mitgeliefert ca. 80cm lang • Unterstützung für folgende Betriebssysteme: Windows 98SE/2000/XP/Vista/Linux und MAC OS V8.6 • Chipsatz: FTDI / FT232BM 0,0707 0,098 http://www.bcom.de/images/productshotspreisliste/173x218/A60334.jpg 4016032170426 Kabel USB 2.0 Seriell Adapter DA-70146 |
Leider komme ich damit auf keinen grünen Zweig, weil ich ja schlecht ein Leerzeichen (oder auch 2) als Trenner verwenden kann, weil im Beschreibungstext auch Leerzeichen enthalten sind.
Hat hier vielleicht jemand eine Idee?
Danke Ebi
|
|
haentschman
      
Beiträge: 285
Erhaltene Danke: 33
DX10 Berlin Professional
|
Verfasst: So 04.01.09 19:49
hmmm...ohne mich festnageln zu lassen.
Ich glaube da hast du wenig Chancen. Du hast es ja schon richtig gesagt...wo ist die Trennung zwischen den Datensätzen.
Ich würde mal beim Lieferanten der Datei "nachhaken  " wer diesen Unsinn verzapft und eine andere Version anfordern.

|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: So 04.01.09 20:40
tse tse ich würd dem lieferanten das zeug um die Ohren hauen
Wie wäre es mit XML?
Flat files sind zwar einfach aber i.d.R. normalisiert.
*grübel*
grez
msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
pesi
      
Beiträge: 67
Erhaltene Danke: 1
|
Verfasst: Mo 05.01.09 13:01
Titel: Wirklich Leerzeichen als Trennzeichen???
Also ich kann nicht so recht glauben, dass es wirklich Leerzeichen sind, die die einzelnen Felder trennen.
Ich würde ja darauf tippen, dass es TABs sind die dazwischen sind. Hast Du das mal im Texteditor überprüft?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 05.01.09 13:50
colaka hat folgendes geschrieben : | Leider komme ich damit auf keinen grünen Zweig, weil ich ja schlecht ein Leerzeichen (oder auch 2) als Trenner verwenden kann, weil im Beschreibungstext auch Leerzeichen enthalten sind. |
Es sind aber nur zwei Leerzeichen hintereinander zwischen den Spalten. Sonst würden es ja nicht jeweils 23 doppelte Leerzeichen zwischen den Überschriften und in jeder Zeile sein.
Also versuch es doch einfach mal mit zwei Leerzeichen als Trennzeichen.
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Mo 05.01.09 18:49
jaenicke hat folgendes geschrieben : | Also versuch es doch einfach mal mit zwei Leerzeichen als Trennzeichen. |
*ROFL*
bis ein Trollo mehr als ein Leerzeichen in dem Text begräbt. Viel Spass bei der Suche.
Das ist Software von vor-vor-vorgestern.
:-)Msch
Moderiert von Narses: Zitat repariert
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
jaenicke
      
Beiträge: 19315
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 05.01.09 19:35
Natürlich ist das keine gute Lösung, aber ohne andere Daten ist es die einzige...
Abgesehen davon verrutschen dann bei dem entsprechenden Eintrag "nur" die Spalten, wenn es wirklich mal vorkommen sollte. Aber wenn das als Trennzeichen benutzt wird, kann man zumindest erstmal hoffen, dass das verhindert wird.
Aber eine andere Lösung (außer sinnvoll formatierte Daten anzufordern) gibt es eben nicht.
|
|
MSCH
      
Beiträge: 1448
Erhaltene Danke: 3
W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
|
Verfasst: Mo 05.01.09 19:43
Dann bau wenigstens eine Prüfung rein.
alles mit#32#32 durch | ersetzen und dann schauen,ob die Anzahl der so erzeugten "Spalten" mit der Anzahl der Spalten der Zieltabelle übereinstimmt.
:-)msch
_________________ ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
|
|
|