Analyse von Texten

Peter_Frankfurt

Aktiver Benutzer
Beiträge
29
Hallo zusammen,
ich denke immer noch über meine Textdatei nach, die ich gerne analysieren möchte.

Sie sieht ja so aus:
0459409Audi
0488802V6
048020820499884
04894490E5454242445888474
0254407M+M
048740924 C
04484429996
0498444X
0488448Frankfurt
049844685
04544089644545445S
0464440Combi
044540442049
04 8460409684
048440999
047446920490604
044848820444204
0844444084244879
0224484Mannheim
044658444
074448244
06044249
084442208
024428980
047500020200948
094500482006
0275098060478800
0275098060478900
0275098060478810
0805099454654504
049500408004
0425888060478700
0489699047454504
08850844920
0484498025478780
0484899448654600
048400944
04990984
048967852
04846842
08880409904
08880448244
0499006559555
07440402020424565454545
040804484

(1 Datensatz von ca 1500; also insgesamt ca 70.000 Zeilen)

Nun meine Frage:
Kann man überhaupt so eine Datenstruktur analysieren? Oder müssen diese Daten dann in mehrere Datensätze umgesetzt werden?

Ich kenne ja sonst nur Datenbanktabellen bei denen die einzelnen Fahrzeuge hinterlegt sind und dann für jede Reparatur ein neuer Datensatz sich in der Tabelle sich befindet. Also hier für den Reparatur Code: 0275098xxx.
Was macht denn bei so einer Datenmenge überhaupt Sinn?

VG Peter
 
Werbung:
Wie ist denn jeder Datensatz abgetrennt? Fängt jeder mit 0459409... an?
Gibt es irgendwo eine Dokumentation der Datenstruktur?
 
Habe einen einfachen Parser geschrieben in Powershell (gibts auch unter Linux). Für andere Sprachen kann das sicher adaptiert werden:

Code:
$data = Get-Content .\daten.txt

$dataSet = @{} # Hashtable, Name = Value

foreach($line in $data){
 $name = $line.Substring(0,7)
 $value = $line.Substring(7)
 if($name -eq '0459409'){ # Markiert neuen Datensatz
  if($dataSet.count -gt 0){
   # TODO: SQL schreibe Datensatz in DB
   $dataSet = @{} # Neuer Datensatz
  }
 }
 if($dataSet.Keys -contains $name){ # Eintrag gibt es schon. Wird als Array angelegt
  $dataSet[$name] = @($dataSet[$name],$value)
 }else{
  $dataset.add($name,$value) # Neuer Eintrag
 }
}
# TODO: SQL schreibe (letzten) Datensatz in DB

Das in die DB schreiben fehlt dann noch. Hier hat man aber alle Werte eines Datensatzs in einer Hashtable. Mehrfache Werte sind als Array gespeichert und müssen ggf. gesondert behandelt werden.

Mit Powershell kann man auf den Key (Name) und den Value wie folgt zugreifen (für das SQL):

Code:
$dataSet.GetEnumerator()|%{ $_.Name; $_.Value }
 
Werbung:
Nur mal zur Klarstellung, ein altes, fast gelöstes Problem neu aufzutischen, ist nicht die feine Art. Man vergeudet den Gehirnsaft anderer Leute unnötig, vielleicht sogar absichtlich?

Irgendwo nicht weiter zu kommen, ist dagegen kein Problem, dafür gibt es ja solche Foren.
 
Zurück
Oben