Laden...

Aus PlainText Tabelle erstellen

Erstellt von B A L U vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.135 Views
B A L U Themenstarter:in
134 Beiträge seit 2007
vor 14 Jahren
Aus PlainText Tabelle erstellen

Hallo,

ich habe mal wieder ein Problem, wozu mit momentan keine Lösung einfällt.

Und zwar sollen wir einen Parser bauen, der Details aus KFZ-Rechnung ausliest. Unter anderem sollen auch die verwendeten Ersatzteile ausgelesen werden.
Die Tabelle sieht zum Beispiel so aus:

ARB.POS.NR/     INSTANDSETZUNGS-/EINZEL-/VERBUNDARBEITEN       KL     AW    ARB.-      
LEIT-NR

Uns fallen momentan aber keine sinnvollen Möglichkeiten ein, wie man das automatisch mit einem Algorithmus trennen könnte. Die Trenner sind leider Leerzeichen und keine Tabulatoren.
Habt ihr eine Idee, wie man das machen könnte?

Viele Grüße

Tobias

M
334 Beiträge seit 2007
vor 14 Jahren
  1. alle Leerzeichen durch ein Leerzeichen ersetzen (mit Regex z.b.)
  2. String.Split()
M
24 Beiträge seit 2009
vor 14 Jahren

Hallo,
ich würde es ansatzweise in etwa so versuchen, wenn die Werte immer in der selben Spalte stehen:


// String ASCIIString = die eingelesene Textdatei

char[] separatorsText = new char[] { '\r', '\n' }; // Seperator für Textdatei
char[] separatorsZeilen = new char[] { ' ' }; // Seperator für die Zeilen

// Textdatei in Zeilen teilen
String[] stringZeilen = ASCIIString.Split(separatorsText,StringSplitOptions.RemoveEmptyEntries);

// Array für Spalten
String[] stringSpalten = { };

foreach(string Zeile in stringZeilen)
{
   // Zeilen in einzelne Spalten teilen
   stringSpalten = Zeilen..Split(separatorsZeilen, StringSplitOptions.RemoveEmptyEntries);

// stringSpalten verwenden.....

}
 

Gruß mar_bee

B A L U Themenstarter:in
134 Beiträge seit 2007
vor 14 Jahren

Danke erstmal für die Hilfe.

Ich habe das jetzt mal ausprobiert, habe aber noch einige Problem.
Und zwar sobald die Spalte nicht zusammenhängend sind (also keine Leerzeichen sind)

Hier mal die komplette Tabelle.

ARB.POS.NR/    INSTANDSETZUNGS-/EINZEL-/VERBUNDARBEITEN        KL       AW      ARB.-
LEIT-NR                                                                         PREIS

66 05 19 00    KUEHLERGRILL AUS-/EINBAUEN                       2        2      16.60
63 29 19 50    ABDECKUNG STOSSFAENGER V AUS-/EINBAUEN           2        4      33.20
               (KUEHLERGRILL AUSGEBAUT)
50 55 19 50    KOTFLUEGEL V R AUS-/EINBAUEN                     2        7      58.10
               (ABDECKUNG F STOSSFAENGER AUSGEBAUT)
               UMFASST: RADHAUSSCHALE AUS-/EINBAUEN
57 51 19 00    TUER V R AUS-/EINBAUEN                           3        4      33.20
57 51 55 50    TUER V R ERSETZEN (TUER AUSGEBAUT)               3       19     157.70
               UMFASST: AUS-/EINBAU SAEMTLICHER TEILE
58 64 19 00    TUERDICHTUNG H A R AUS-/EINBAUEN                 2        3      24.90

Wie könnte man denn das jetzt trennen. Wir haben da jetzt schon ewig mit Regulären Ausdrücken probiert, aber wir finden einfach keine Lösung dafür.

Vielen Danke und viele Grüße

Tobias

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo B A L U,

die Aufteilung ist doch wohl positionsbezogen. Also String.Substring.

herbivore