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, 1044 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
Exchange Server

Exchange 2016 - Verteilergruppen zusammenfügen

gelöst Frage von pablovicExchange Server2 Kommentare

Hallo zusammen Ich hab grad ein Brett vorm Kopf und hoffe ihr könnt mir helfen. Bei uns hat es ...

Batch & Shell

Powershell zwei Schnippsel zusammenfügen

gelöst Frage von JoshuaTreeBatch & Shell10 Kommentare

Get-XAApplication -FolderPath "applications\test" Das ist der gesamte Aufruf Get-XAApplication -FolderPath "applications\test" ist der erste Teil und gibt alle Anwendungen ...

Batch & Shell

PDF Dateien mit PDFTKBuilderPortable zusammenfügen

gelöst Frage von makroll10Batch & Shell4 Kommentare

Hallo Allerseits, ich beabsichtige mit dem "PDFTKBuilderPortable" mehrere PDF-Dateien zusammen zu fassen. Eigentlich ist das ja auch ganz einfach: ...

Windows Tools

PDFs nummerieren und zusammenfügen

gelöst Frage von DeeJayBeeWindows Tools3 Kommentare

Hallo zusammen, mein Kollege muss für eine Behörde ein paar Daten zusammen suchen. Es gibt ein Antragsformular (ausfüllbares PDF), ...

Neue Wissensbeiträge
Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 5 StundenGoogle Android2 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Sicherheit

Intel gibt neue Spectre V2-Microcode-Updates frei (20.02.2018)

Information von kgborn vor 5 StundenSicherheit

Intel hat zum 20. Februar 2018 weitere Microcode-Updates für OEMs freigegeben, um Systeme mit neueren Prozessoren gegen die Spectre ...

Microsoft
ARD-Doku - Das Microsoft Dilemma
Tipp von Knorkator vor 8 StundenMicrosoft3 Kommentare

Hallo zusammen, vor einigen Tagen lief in der ARD u.a. Reportage. Das Youtube Video dazu dürfte länger verfügbar sein. ...

Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 1 TagWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

Heiß diskutierte Inhalte
Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server39 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Router & Routing
ISC DHCP 2 Subnetze
gelöst Frage von janosch12Router & Routing18 Kommentare

Hallo, ich betreibe bei mir im Netzwerk einen ISC DHCP Server auf Debian, der DHCP verwaltet aktuell ein /24 ...

CPU, RAM, Mainboards
32 gb RAM zu wenig?
Frage von pcguyCPU, RAM, Mainboards13 Kommentare

Hallo zusammen, mein PC verfügt über 32GB Ram. Nun kriege ich bei grossen Dateien im Illustrator die Fehlermeldung das ...