Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Analyse von Texten

Dieses Thema im Forum "Datenmodellierung, Datenbank-Design" wurde erstellt von Peter_Frankfurt, 1 August 2020.

  1. Peter_Frankfurt

    Peter_Frankfurt Aktiver Benutzer

    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
     
  2. Dukel

    Dukel Datenbank-Guru

    Wie ist denn jeder Datensatz abgetrennt? Fängt jeder mit 0459409... an?
    Gibt es irgendwo eine Dokumentation der Datenstruktur?
     
  3. Dukel

    Dukel Datenbank-Guru

    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 }
     
    Walter gefällt das.
  4. dabadepdu

    dabadepdu Datenbank-Guru

    Du bist witzig, was ist mit dem alten Thread?
    Wie ist der Status Quo?
    Wo ist Dein Problem?
     
    akretschmer gefällt das.
  5. dabadepdu

    dabadepdu Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden