Zum Inhalt springen

Tabellenzeilen in txt-Datei zusammenfassen


neuronkl

Empfohlene Beiträge

Hallo zusammen,

ich hoffe ihr könnt mir mit einem vermutlich relativ simplen Problem weiterhelfen, was mir eine Menge STRG+C / STRG+V Arbeit ersparen würde^^

(vielleicht ist der Weg über Excel auch möglich/leichter)

Ich habe eine Tabelle als .txt-Datei, die z.B. so aussieht:

--------------------------------------- 

|Materialnr.  | Kommentar             | 

--------------------------------------- 

|123.456-78   |$ Kommentar $ Kommentar| 

|123.456-78   |$ Kommentar            | 

|123.456-78   |$ Kommentar $ Kommentar| 

|543.982-44   |$ Kommentar            | 

|543.982-44   |$ Kommentar $ Kommentar| 

|876.543-21   |$ Kommentar            | 

|876.543-21   |$ Kommentar            | 

|876.543-21   |$ Kommentar            | 

--------------------------------------- 
Das Problem hierbei ist, dass die Kommentare (inklusive Dollarzeichen $) zur selben Materialnr. alle in einer Zeile hintereinander stehen sollen, sodass jede Materialnr. nur 1-Mal vorkommt. Die überflüssigen, leeren Zeilen sollen dann gelöscht werden, also etwa so:
--------------------------------------------------------------------------- 

|Materialnr.  | Kommentar                                                 | 

--------------------------------------------------------------------------- 

|123.456-78   |$ Kommentar $ Kommentar $ Kommentar $ Kommentar $ Kommentar| 

|543.982-44   |$ Kommentar $ Kommentar $ Kommentar                        | 

|876.543-21   |$ Kommentar $ Kommentar $ Kommentar                        | 

--------------------------------------------------------------------------- 

Ich kenne mich leider mit Programmierung nicht aus, aber ich vermute einfach, dass es sich doch um keine wirklich aufwändige Programmierarbeit handeln sollte, den Vorgang automatisch ablaufen zu lassen oder?

Vielleicht ist es ein bisschen viel verlangt (ich kann nur grob einschätzen, wie viel Arbeit es wohl machen dürfte), aber könnte mir jemand bitte einen Programmcode aufschreiben, der die Kommentare inklusive Dollarzeichen bei gleicher Materialnummer in die selbe Zeile (hintereinander mit Leerzeichen) bringt? Wenn die leeren Zeilen (Kommentarspalte) dann auch noch gelöscht würden, wäre das natürlich optimal :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ok, das ist hier mal meine Lösung. Vielleicht nicht elegant, aber es funktioniert. Ich hab jetzt auch nur die Daten einbezogen. Die Kopfzeile der Tabelle musst selbst einfügen. Als Basis habe ich genau Deine Tabelle (tabelle.txt) benutzt. Als neue Tabelle ensteht tabelleNEW.txt. Wenn die anders aussieht, muss eventuell der Code angepasst werden. Iss mit Perl unter Linux realisiert. Wenn es also mit Windows machen willst, musst die erste Zeile anpassen und ggf. noch activePerl o.ä. installieren. Oder einfach auf ner Linux VM ausführen.

#!/usr/bin/perl


open (IN, "<tabelle.txt"); #muss je nach Dateiname angepasst werden


my @daten = <IN>;

my %hash=();


foreach (@daten)

	{	

		my @split = split(/\|/,$_);

		$split[1] =~ s/\s+//g;

		$split[2] =~ s/\s+/ /g;


		$hash{$split[1]}.=$split[2];

	}


my @sortierteSchluessel = sort keys %hash;


open(OUT, ">>tabelleNEW.txt");

foreach (@sortierteSchluessel)


	{

		print OUT "|$_    |$hash{$_}|\n";

	}

Bearbeitet von Kadauz
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...