[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [OT] RegEx



Hallo Amir Tabatabaei, hallo auch an alle anderen

Donnerstag, 18. Januar 2007 18:49 - Amir Tabatabaei wrote:
> Hi,
>
> Sorry dass ich die Liste erneut für eine Regular-Expression Frage
> "missbrauche". Ich habe meine Frage bereits an [1] geschickt, jedoch
> ohne eine Antwort. Und hier sind viele Dabei, die mir hoffentlich
> helfen könnten.
>
> Ich habe zwei Dateien:
>
> ---------- Datei A ----------
> 110703, a, b, c
> 110703, a, b, c
> 110703, a, b, c
> 110704, a, b, c
> 110705, a, b, c
> 110705, a, b, c
> 110706, a, b, c
> 110707, a, b, c
>
> ---------- Datei B ----------
> 110701, d, e, f, g, h
> 110704, d, e, f, g, h
> 110705, d, e, f, g, h
> 110708, d, e, f, g, h
>
> Die erste Spalte entspricht der Uhrzeit. Ich möchte die Uhrzeiten der
> beiden Dateien miteinander vergleichen und sie zusammenfassen. Dabei
> soll eine Zeile aus Datei B, die nicht in A erhalten ist mit Nullen
> vorweg gefüllt werden und andersrum. Sollten mehrere selbe Uhrzeiten
> in den Dateien vorhanden sein, sollen nur soviele ergänzt werden, wie
> vorhanden.
>
> Die Ausgabe sollte also wie folgt aussehen:
>
> ---------- Ergebnis ----------
> 110701, 0, 0, 0, d, e, f, g, h
> 110703, a, b, c, 0, 0, 0, 0, 0
> 110703, a, b, c, 0, 0, 0, 0, 0
> 110703, a, b, c, 0, 0, 0, 0, 0
> 110704, a, b, c, d, e, f, g, h
> 110705, a, b, c, d, e, f, g, h
> 110705, a, b, c, 0, 0, 0, 0, 0
> 110706, a, b, c, 0, 0, 0, 0, 0
> 110707, a, b, c, 0, 0, 0, 0, 0
> 110708, 0, 0, 0, d, e, f, g, h

Schick ;-)

1. Darf man Fragen, wofür du das benötigst? 

2. Wie(so) willst du das mit RegEx lösen? [1]

IMHO wäre es hier am einfachsten, ein Script in einer dir genehmen 
Sprache zu schreiben, das zeilenweise Datei A einliest bis sich der 
erste Wert ändert und nach jeder Zeile zeilenweise Datei B, solange der 
erste Wert mit dem aus Datei A übereinstimmt (z.B. in zwei Arrays). 
Dann kannst du diese beiden Arrays nach deinen Vorgaben mischen und in 
eine neue Datei C schreiben. Und zurück auf Anfang. 
Evtl. noch beachten, dass Datei B auch Zeilen enthalten kann, die in A 
nicht vorkommen (aber dass musst du entscheiden, ob das möglich ist). 
Dann müsste man zuerst entscheiden lassen, in welcher Datei der 
kleinste Anfangswert ist und dann ggf. wechselseitig einlesen.

Wenn beide Dateien überschaubar klein sind, könnte man auch gleich beide 
Dateien komplett in ein Array einlesen.

Die Umsetzung ist nun deine Aufgabe ;-) (RegEx wirst du dabei nicht 
brauchen).

[1] RegEx sind toll, aber halt auch nicht universell ;-)

-- 
Gruß
                MaxX

Bitte beachten: Diese Mailadresse nimmt nur Listenmails entgegen.
Für PM bitte den Empfänger gegen den Namen in der Sig tauschen.



Reply to: