cattas
Goto Top

CSV-Datei überprüfen

CSV-Datei auf Feldtyp und Feldlänge prüfen.

Hallo,

ich bin auf der Suche nach einem Programm, mit dem ich eine csv-Datei überprüfen kann.
Z.B. möcht ich vorgeben, dass spalte1 ein String ist und maximal 25 zeichen haben darf. Spalte2 dann ein Integer, usw.
Außerdem möchte ich evtl. Sonderzeichen durch "Ersatz-Zeichen" austauschen oder eine überprüfung, ob alle Zeilen z.b. 30 Felder haben ...

Ich habe ein Programm, das mir Artikeldaten als csv-Datei exportiert. Diese werden für eine Webshop benötigt. Allerdings muss vorher sichergestellt werden das die Defintion für den Import stimmt. Ich hab aber weder beim Import noch beim Export die möglichkeit irgendwas zu beeinflussen.

Also ich benötige keinen Converter oder Exporter sondern einen Vergleich.

Ich hoffe jemand ist schonmal über so ein Programm "gestolpert". Ansonsten muss ich selber ran.

Schöne Grüße
cattas

Content-ID: 134315

Url: https://administrator.de/contentid/134315

Ausgedruckt am: 27.11.2024 um 01:11 Uhr

Pjordorf
Pjordorf 25.01.2010 um 18:48:47 Uhr
Goto Top
Hallo cattas,

ich bin auf der Suche nach einem Programm, mit dem ich eine csv-Datei überprüfen kann.
Z.B. möcht ich vorgeben, dass spalte1 ein String ist und maximal 25 zeichen haben darf. Spalte2 dann ein Integer, usw.
Außerdem möchte ich evtl. Sonderzeichen durch "Ersatz-Zeichen" austauschen oder eine überprüfung,
ob alle Zeilen z.b. 30 Felder haben ...
Innerhalb einer CSV Datei ist es völlig egal, ob du einen Wert als Text (String) oder Integer oder als Postleitzahl oder sonstwas haben willst.

Ich habe ein Programm, das mir Artikeldaten als csv-Datei exportiert. Diese werden für eine Webshop benötigt. Allerdings
muss vorher sichergestellt werden das die Defintion für den Import stimmt. Ich hab aber weder beim Import noch beim Export
die möglichkeit irgendwas zu beeinflussen.
Normal bei CSV

http://de.wikipedia.org/w/index.php?title=CSV_(Dateiformat)&oldid=6 ...

Du kannst dir die CSV in Excel importieren, um zu schauen ob die Werte passen.

Peter
bastla
bastla 25.01.2010 um 19:21:57 Uhr
Goto Top
Hallo cattas und willkommen im Forum!

Ein passendes Programm kenne ich nicht, aber per VBScript sollte sich das lösen lassen - ich warte aber noch ein wenig (schließlich wolltest Du ja "selber ran" face-wink) ...

@pjodorf
Innerhalb einer CSV Datei ist es völlig egal, ob du einen Wert als Text (String) oder Integer oder als Postleitzahl oder sonstwas haben willst.
Innerhalb ja, aber beim Import spielt es dann vermutlich doch eine Rolle, ob etwa ein Integer-Feld mit einem (unpassenden) String gefüllt werden soll ...

Grüße
bastla
Pjordorf
Pjordorf 25.01.2010 um 19:43:26 Uhr
Goto Top
@bastla,
Innerhalb ja, aber beim Import spielt es dann vermutlich doch eine Rolle, ob etwa ein Integer-Feld mit einem (unpassenden) String
gefüllt werden soll ...
Selbstverständlich.

Aber warten wir doch mal ab was uns cattas noch verrät. Mit seinem "Allerdings muss vorher sichergestellt werden das die Defintion für den Import stimmt. Ich hab aber weder beim Import noch beim Export die möglichkeit irgendwas zu beeinflussen." kommen wir nicht weiter.

Ich vermute das sein "Programm, das mir Artikeldaten als csv-Datei exportiert" ein Warenwirtschaftssystem ist. Und sein Webshop, der die Importschinttstelle anbietet, hat sicherlich auch eine Dokumentation oder Feldbeschreibung wie seine (WWS?) dazu.

Aber, das wissen wir alles nicht.

Ausserdem, für 5 (?) Datensätze lohnt sich das eh nicht!

Peter
bastla
bastla 25.01.2010 um 19:50:52 Uhr
Goto Top
@pjodorf
Ausserdem, für 5 (?) Datensätze lohnt sich das eh nicht!
Wo Du recht hast, hast Du recht ... face-wink

Grüße
bastla
cardraft
cardraft 25.01.2010 um 19:53:23 Uhr
Goto Top

Ausserdem, für 5 (?) Datensätze lohnt sich das eh nicht!


Da hat er recht. Wenn nicht mach es mit PHP und programmier die schnell was zusammen.
PHP kann sehr gut mit CSV Daten umgehen
Einfach mal googeln gibts bestimmt was fertiges.

Aber bei 5 Datensätzen kannst das eben auch per Hand machen
Biber
Biber 25.01.2010 um 19:58:13 Uhr
Goto Top
Moin cattas,

wenn ihr als Medium für den Datenaustausch das CSV-Format verwendet
  • und das Datenerfassungssystem zu blöd ist, irgendwelche noch so banalen Eingabevalidierungen zu machen
  • und das Export-Programm (oder der Export-Mausklick?) zu blöd ist, wenigstens nur die Datensätze zu exportieren, die nach welchen Kriterien auch immer "formal gültig" sind
  • und auch noch die Import-Schnittstelle zu blöd ist, beim Import Datensätze auf Gültigkeit/Verwertbarkeit zu prüfen und die restlichen abzulehnen

dann hast du schon dreifachen Grund, da mal deine Stimme zu erheben und die Jungs und Mädels zu fragen, ob die noch ganz Birne sind.

In diesem Desasterszenario noch einen draufzusetzen und die Daten in der CSV zu prüfen und eventuell sogar in einem schwachen Moment zu manipulieren (oder zu "berichtigen"), so dass dann überhaupt keine Fehlerquelle mehr lokalisiert werden kann (denn gesendete Daten und empfangene Daten sind ja nicht mehr identisch)....

...damit machst du dich vom Opfer oder Helfer wirklich zum Täter.

Nutz deine Energie, um einen, zwei oder drei der oben angeführten Punkte auszuräumen -- die Gültigkeit der CSV-Datei anhand von eigenen Kriterien prüfen zu wollen (du weißt doch gar nicht alles, was an Programmlogik im WebShop hinterlegt sein mag) und das auch noch mit einem weiteren Werkzeug mit nochmal anderen Sprachelementen macht jedenfalls die letzten erkennbaren Spurenelemente eines dokumentierbaren Prozesses zunichte.

Und mag es auch handwerklich noch so "mal eben schnell machbar" sein.

Grüße
Biber
cattas
cattas 25.01.2010 um 20:08:49 Uhr
Goto Top
hi,

leider handelt es sich nicht nur um 5 Datensätze, sondern um rund 10.000. Und das täglich. Das es bei einer CSV-Datei egal ist was drin steht weiß ich selbstverständlich. Allerdings ist es beim Import in den Webshop nicht egal. dieser benötigt z.b. in feld 3 die artikelnummer als integer. usw.

z.b. hatte ich letzte woche das problem, dass in einer artikelbeschreibung ein semikolon enthalten war. dadurch sind dann die felder verrutscht und es konnt nicht importiert werden. anderes beispiel. ein preisfeld mit drei nachkommastellen. Das dies nicht bei der eingabe direkt abgefangen wird ist natürlich schon mist. Kann aber kurzfristig nicht geändert werden.

eine feldbeschreibung für den import habe ich natürlich. es scheitert lediglich an der überprüfung. Ich habe ca. 1-2mal pro monat, dass "per hand" falsche daten eingegeben werden. und der komplette import fehlschlägt.
Biber
Biber 25.01.2010 um 20:15:37 Uhr
Goto Top
Moin cattas,

Nachtrag zu meinem Kommentar oben:
Zitat von @cattas:
Das dies nicht bei der eingabe direkt abgefangen wird ist natürlich schon mist.
Kann aber kurzfristig nicht geändert werden.

Ich habe ca. 1-2mal pro monat, dass "per hand" falsche daten eingegeben werden. und der komplette import fehlschlägt.
Das ist aber auch das einzige Druckmittel, dass du nutzen kannst, um eine Änderung voranzutreiben.
Nur wenn der 10000-Datensätze-Import 2x im Monat oder besser noch 2x die Woche auf die Bretter geht hast du überhaupt jemand, den du motivieren kannst.
Versuche nicht, diesen unhaltbaren Zustand zu kaschieren.... es wird dir NICHT der Dank des Vaterlands oder des Unternehmens dafür winken.

Grüße
Biber
cattas
cattas 25.01.2010 um 20:34:30 Uhr
Goto Top
Hallo Biber,

das "Druckmittel" ist nicht das Problem. Der Import ist beim Shop-Betreiber in der To-Do-List wird wohl aber erst ende es jahres was,da noch ca 5 wichtigere sachen vorher anstehen. pobleme die nur zwei mal im monat auftreten sind da erstmal nicht besonders relevant, aber stören natürlich.

daher die idee zur einfachen überprüfung. schade das es anscheinend nichts gibt.

mfg
cattas
cardraft
cardraft 26.01.2010 um 01:14:02 Uhr
Goto Top
Lies die Daten als Werte ein ein Array mit PHP und überprüfe den Inhalt. Mit for to oder if Schleifen kannst du dann die Daten an deine Anforderungen anpassen.
Ganz einfach mit PHP. Da du das sowieso in einen Shop intergrierst gehe ich mal davon aus, dass du da mit php arbeiten kannst.
Nach dem überprüfen übergiebst du das Array an den SQL und gut.
Suche mal nach CSV und PHP sollte wirklich nicht schwierig sein.