Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Textdatei: Datensätze zusammenfügen

Mitglied: weltklasse

weltklasse (Level 1) - Jetzt verbinden

18.10.2013, aktualisiert 10:47 Uhr, 1103 Aufrufe, 6 Kommentare

Hallo,

ich habe eine Textdatei mit 300.000 Datensätzen.

01.
ID | Artikel | Textfeld
02.
a1   ab123   xxx5
03.
a1   ab123   34wwwwwww
04.
a1   ab123   999sss555777999
05.
b3   x1egr    dddfffggg
06.
c5   4a44     rrrrr88888uuuuu
07.
c5   4a44     qqqqrr
08.
c5   4a44     123333
09.
c5   4a44     rrr777
Das Ergebnis soll in eine separate Datei geschrieben werden und so aussehen:

=============================================================
ID | Artikel | Textfeld
a1   ab123   xxx5, 34wwwwwww, 999sss555777999
b3   x1egr    dddfffggg
c5   4a44     rrrrr88888uuuuu, qqqqrr, 123333, rrr777
Kann mir jemand bei dem Code helfen???
Mitglied: Budders
18.10.2013, aktualisiert um 10:41 Uhr
Hallo weltklasse,

ich habe ein ähnliches Programm geschrieben das aus einer liste im Format
01.
 
02.
lagerplatz
03.
artikel
04.
lagerplatz
05.
...
das folgende Format macht
01.
lagerplatz artikel bestand


ich könnte mir vorstellen, dass mit ein paar Modifikationen damit ein Programm das für dich richtig ist erzeugt werden kann.
Ich habe gerade etwas viel zu tun daher stell ich dir einfach mal den kompletten Code unbearbeitet zur Verfügung, vielleicht bringt dich das ja weiter.
Mein Code ist bereits kommentiert also hoffe ich dass du dich darin gut zurecht findest

http://pastebin.com/hHXP2VT5

Ansonsten gehe ich davon aus, dass die hier ansässigen Experten eine tolle Lösung für dich bereit haben :p

MfG Budders
Bitte warten ..
Mitglied: weltklasse
18.10.2013 um 12:14 Uhr
Vielen Dank für den Link.

Sorry, aber leider bin ich nicht so fit um den Code auf meine Bedürfnisse umzuwandeln.

Kann mir da vielleicht jemand helfen?

Vielen Dank.
Bitte warten ..
Mitglied: bastla
18.10.2013, aktualisiert um 13:01 Uhr
Hallo weltklasse und willkommen im Forum!

Da Du weder die Trennung der einzelnen Felder, noch deren Inhalt näher beschrieben hast, ein Ansatz der (bis auf die Tatsache, dass Leerzeichen als Trennzeichen betrachtet werden und daher führende Leerzeichen - wie zB vor "dddfffggg" - auf der Strecke bleiben) mit Deinen angegebenen Beispieldaten funktioniert:
01.
@echo off & setlocal
02.
set "Ein=D:\DieDatei.txt"
03.
set "Aus=D:\DieneueDatei.txt"
04.

05.
set "Zeile=ID ^| Artikel ^| Textfeld"
06.

07.
del "%Aus%" 2>nul
08.
for /f "usebackq skip=1 tokens=1,2*" %%a in ("%Ein%") do call :ProcessLine %%a %%b "%%c"
09.
>>"%Aus%" echo %Zeile%
10.
goto :eof
11.

12.
:ProcessLine
13.
if "%1%2" neq "%Zuletzt%" (
14.
    >>"%Aus%" echo %Zeile%
15.
    set "Zeile=%1 %2 %~3"
16.
    set "Zuletzt=%1%2"
17.
) else (
18.
    set "Zeile=%Zeile%, %~3"
19.
)
20.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: weltklasse
18.10.2013 um 13:17 Uhr
Entschuldigung. Die Felder der Datei sind mit TAB-Schritt voneinander getrennt.
Bitte warten ..
Mitglied: bastla
18.10.2013, aktualisiert um 15:55 Uhr
Hallo weltklasse!

Dann eher so:
01.
@echo off & setlocal
02.
set "Ein=D:\DieDatei.txt"
03.
set "Aus=D:\DieneueDatei.txt"
04.

05.
set "Zeile=ID	Artikel	Textfeld"
06.

07.
del "%Aus%" 2>nul
08.
for /f "usebackq skip=1 tokens=1,2* delims=	" %%a in ("%Ein%") do call :ProcessLine %%a %%b "%%c"
09.
>>"%Aus%" echo %Zeile%
10.
goto :eof
11.

12.
:ProcessLine
13.
if "%1%2" neq "%Zuletzt%" (
14.
    >>"%Aus%" echo %Zeile%
15.
    set "Zeile=%1	%2	%~3"
16.
    set "Zuletzt=%1%2"
17.
) else (
18.
    set "Zeile=%Zeile%,%~3"
19.
)
20.
goto :eof
Die Zeilen 5, 8 und 15 verwenden jetzt TAB als Trennzeichen (delimiter). In Zeile 18 musst Du selbst entscheiden, ob nach dem Komma ein Leerzeichen folgen soll oder (wie in der aktuellen Fassung) nicht ...

Grüße
bastla
Bitte warten ..
Mitglied: weltklasse
21.10.2013 um 08:10 Uhr
Hallo bastla,

vielen Dank für Deine Lösung. Klappt super.
Da zeigt es sich, wer wirklich Ahnung hat.
Bitte warten ..
Ähnliche Inhalte
Microsoft Office

Vorherigen Datensatz mit aktuellem Datensatz vergleichen

Frage von THEFRUSTMicrosoft Office1 Kommentar

Hallo, ich bin neu hier und hoffe auf Eure Hilfe zu einer Abfrage in ACCESS 2013. Zum oben genannten ...

Microsoft Office

Serienbrief Nächster Datensatz Wenn

Frage von Druide83Microsoft Office2 Kommentare

Hallo, ist das erste mal dass ich mit Serienbriefen in Word zu tun habe und mir fehlt auch nur ...

Backup

Locky - Backup Exec Datensatz sichern

Frage von EisernBackup6 Kommentare

Hallo, trotz Warnungen, persönlicher Gespräche und immer aktueller Signaturen hat es ein Kollege geschafft sich den Trojaner Locky einzufangen. ...

Windows 8

Textdatei umformatieren

gelöst Frage von bladeyyyWindows 81 Kommentar

Hey, Ich habe folgendes Problem: Ein Programm exportiert bei mir eine Textdatei in dem Format: erste Zeile mit unnötigem ...

Neue Wissensbeiträge
Humor (lol)
Preisvertipper
Information von Dilbert-MD vor 1 TagHumor (lol)6 Kommentare

Moin! weil heute Freitag ist, zeige ich Euch den Preisvertipper der Woche: vergesst den Acer Predator 21x, der ist ...

Windows Update
Sicherheitsupdate für SQL Server 2014 SP3
Information von sabines vor 2 TagenWindows Update2 Kommentare

Für den SQL Server 2014 existiert ein Sicherheitsupdate. Laut KB Artikel wird es als CU3 angezeigt: Server 2014 SP3 ...

Backup

Veeam Agent für MS Windows - neue Version verfügbar (bedingt jedoch offenbar .NET Framework 4.6)

Information von VGem-e vor 3 TagenBackup1 Kommentar

Moin Kollegen, einer unserer Server zeigte grad an, dass für o.g. Software ein Update verfügbar ist. Ob ein evtl. ...

Python

Sie meinen es ja nur gut - Microsoft hilft python-Entwicklern auf unnachahmliche Weise

Information von DerWoWusste vor 5 TagenPython2 Kommentare

Stellt Euch vor, Ihr nutzt python unter Windows 10 und skriptet damit regelmäßig Dinge. Nach dem Update auf Windows ...

Heiß diskutierte Inhalte
Windows Update
WSUS - erforderlich Updates
Frage von emeriksWindows Update24 Kommentare

Hi, ein gängiges Verfahren, welche Updates man am WSUS-Server genehmigen soll und welche nicht, beruft sich darauf, dass man ...

Debian
Alle Verbindungen bis auf eine IP Adresse blockieren
Frage von BananenmeisterDebian13 Kommentare

Hallo Zusammen, Ich habe einen Hyper-V Server auf dem ein debian (ohne desktop) läuft. Dort drauf ist ein Webserver ...

Windows 7
Windows 7: Keine Anmeldung mehr möglich
Frage von hreinartWindows 713 Kommentare

hallo, bei meinem win7 rechner (medion laptop) kann ich mich nicht mehr anmelden. er fährt ohne fehlermeldungen hoch, bringt ...

Netzwerke
Dataintegrity Win7
Frage von alexlaza11Netzwerke9 Kommentare

Schönen guten Abend, Ich wollte fragen wie ihr die Datenintigrität gewährleistet bei qualifizierten Systemen (Pharmaunternehmen, Lebensmittelkonzerne ect.) Die meisten ...