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

Kundendaten.txt per batch bearbeiten

Frage Entwicklung Batch & Shell

Mitglied: sledge1

sledge1 (Level 1) - Jetzt verbinden

14.11.2008, aktualisiert 28.11.2008, 4300 Aufrufe, 10 Kommentare

HILFE

Hallo zusammen,

bräuchte mal Hilfe bei einem Problem.
Ich habe eine Kundendatei welche ";" getrennt ist.

Problem 1: Nach und Vorname sind in einem Feld und durch ein "," getrennt.
Diese sollen aber in 2 Felder formatiert werden. (Max ; Mustermann) also erst der Vorname und dann der Nachname

Problem 2:
Dies soll aber nicht bei allen Feldern passieren (z.B. Firmen) Diese sind aber durch den Anredeindex erkenntlich 1:Firma 2: Mann 3:Frau 4:Frau (ex Fräulein ) also nur bei diesen.

Struktur der Daten geht nach den Namen noch weiter sind aber so in Ordnung

COMPANY; KUNDENNR;CODE;ANREDECODE;ANREDETEXT;NAME;.................

Jetzt sehen die Daten so aus
1;123456;2;Herr;Mustermann, Max;.....................

So sollten diese werden
1;123456;2;Herr;Max;Mustermann;.....................

und danach wieder den selben Dateinamen bekommen

kann mir jemand dabei helfen?

Danke
sledge1
Mitglied: 60730
14.11.2008 um 18:48 Uhr
Servus und Willkommen,

an deiner Stelle würde ich das mit Excel lösen.

Datei als .txt in Excel importieren - Spalte A anklicken und Die Sortierfunktion benutzen.
Runterscrollen - alle 2er markieren - ausschneiden in eine andere Tabelle einfügen und dann mit dem "Rest" durch markieren ausschneiden Spalte einfügen - inhalte einfügen - alte nun leere Spalte löschen und dann die vorher gesicherte Tabelle mit den Firmen wieder einfügen, als csv abspeichern und fertig.

Gruß
Bitte warten ..
Mitglied: Biber
14.11.2008 um 18:56 Uhr
Moin sledge1,

Dir ist bewusst, dass bei Durchführung Deines Plans einige "Datensätze" eine andere Struktur haben werden als andere? "Personen"-Sätze dann ein "Feld" mehr als "Firmen"-Sätze.

Ich mein ja nur.... bevor ich da einen aufwändigen Oneliner zusammentrümmere...

Und der Teil des Plans "Originaldatei erstmal mit anderem Inhalt überschreiben" löst bei mir jedesmal einen Adrenalinschub aus..

Grüße
Biber
Bitte warten ..
Mitglied: sledge1
14.11.2008 um 19:02 Uhr
Auch Moin,

Ja ist mir bewusst, dass die Stuktur sich ändert. Ist aber kein Problem.

Bezüglich deinenem Adrenalinschub Diese Datei wird jeden Tag neu erstellt. Möglich wäre schon die Original Datei in Backup.txt zu ändern.

Grüße
sledge1
Bitte warten ..
Mitglied: sledge1
14.11.2008 um 19:06 Uhr
Danke sehr,

In Excel ist dies Leider nicht möglich. Diese Batch muss jeden Tag neu laufen. Auf dem Server ist auch kein Excel drauf.
Sonnst wäre das eine Alternative

Grüße
sledge1
Bitte warten ..
Mitglied: 60730
14.11.2008 um 19:11 Uhr
Zitat von sledge1:
Bezüglich deinenem Adrinalinschub
Diese Datei wird jeden Tag neu erstellt.

Wäre es nicht einfacher - die Quelle (Datenbank) - die den export macht - umzustricken?

Ansonsten ein Ansatz - um die Firmen & Personen zu trennen

01.
findstr /b 1 Kundendaten.txt >personen.txt 
02.
findstr /b 2 Kundendaten.txt >firma.txt 
03.
findstr /b 3 Kundendaten.txt >>personen.txt 
04.
findstr /b 4 Kundendaten.txt >>personen.txt
.. und Sie wieder zu kombinieren
01.
copy personen.txt + firma.txt Kundendaten.txt
Bezüglich Adrenalinschub: Bei "kundendaten" Umlauten und das dann noch Freitags Abends - krieg ich meinen Schub der Schübe.
Ich schieb jetzt ab N8
Gruß

edit - wie denn nun - 1 Mann oder 1 Firma?
1:Firma 2: Mann 3:Frau 4:Frau (ex Fräulein face-wink) also nur bei diesen.
Jetzt sehen die Daten so aus
1;123456;2;Herr;Mustermann, Max;.....................
"Herr" Firma Max Mustermann?
Bitte warten ..
Mitglied: sledge1
14.11.2008 um 19:17 Uhr
Ist leider nicht möglich bei export etaws zu ändern.

Interessanter Ansatz an diese Idee habe ich noch nicht gedacht.

Gruß
Bitte warten ..
Mitglied: sledge1
14.11.2008 um 19:22 Uhr
edit - wie denn nun - 1 Mann oder 1 Firma?
> 1:Firma 2: Mann 3:Frau 4:Frau (ex Fräulein face-wink) also
nur bei diesen.
> Jetzt sehen die Daten so aus
> 1;123456;2;Herr;Mustermann, Max;.....................
"Herr" Firma Max Mustermann?

Feld 1 muss nicht berücksichtigt werden. Ist die interne Company und nicht der Anredecode.Habe ich vergessen zu sagen

Gruß und N8
Bitte warten ..
Mitglied: Biber
14.11.2008 um 19:30 Uhr
Na ja,

sooooooo komplex ist es ja nicht, dass ich den ganzen Kram hier vorturnen muss.
Antesten würde ich es so (ob es überhaupt mt Batch funktionieren KANN, siehe T-Mos Anmerkung bzgl Umlauten und (ergänzend) Sonderzeichen wie "&", die dort auftauchen könnten).

Zum Aufwärmen:
01.
>for /f "delims=; tokens=1-5,*" %i in (e:\schnipsel\kunden.txt) do @echo %i;%j;%k;%l;%m;%n 
02.
1;123456;2;Herr;Mustermann, Max;..................... 
03.
1;123457;1;Firma;Mustermann, Max;..................... 
04.
1;123458;2;Frau;Musterfrau, Maxi;..................... 
05.
1;123459;3;Ex-Fräulein;Musterfrau, Frauke;..................... 
06.
1;1234006;2;Herr;Mustermann2, Max2;..................... 
07.
1;1234002;1;Firma;Mustermannfirma, Inc;..................... 
08.
 
09.
(=19:14:09  D:\temp=) 
10.
>for /f "delims=; tokens=1-5,*" %i in (e:\schnipsel\kunden.txt) do @if "%k"=="1" @echo %i;%j;%k;%l;%m;%n 
11.
1;123457;1;Firma;Mustermann, Max;..................... 
12.
1;1234002;1;Firma;Mustermannfirma, Inc;..................... 
13.
 
14.
(=19:14:13  D:\temp=)
Relativ simpel mit der Prüfung auf das 3. Token (%k) kann ich unterscheiden, ob es eine Firma (Kennzeichen "1" oder eine Person ist.9.

für den "Personen"-Fall muss nur die IF-Bedingung geändert werden in
01.
... do @if "%k" neq "1" @for /f "tokens=1-2 delims=, " %x in ("%m") do @echo %i;%j;%k;%l;%y;%x;%n 
02.
1;123456;2;Herr;Max;Mustermann;..................... 
03.
1;123458;2;Frau;Maxi;Musterfrau;..................... 
04.
1;123459;3;Ex-Fräulein;Frauke;Musterfrau;..................... 
05.
1;1234006;2;Herr;Max2;Mustermann2;.....................
Das bekommst Du allein hin....

Grüße
Biber,
der gleich ins WE fährt..
Bitte warten ..
Mitglied: talkinghands
15.11.2008 um 13:23 Uhr
Hi sledge1,

wenn Du das mit VBScript erledigen möchtest dann schau doch mal hier:

http://www.administrator.de/Umkonvertieren_von_ASKII-Dateien_per_vbs.ht ...

und zwar die Script Version von 15.11.2008 um 04:00:35 Uhr:

Du müsstest nur die entscheidende Prozedur schreib_neu etwas abändern

01.
Sub schreib_neu 
02.
   Dim intpos(5) 
03.
   ' die ersten 5 Spalten in der CSV Datei sind hier wichtig 
04.
   cString = LOGTXT 
05.
   For i = 1 to 5 
06.
      intpos(i) = InStr(cString,";") 
07.
      If i =  1 Then Feld01 = Left(cString,intpos(i)-1) 
08.
      If i =  2 Then Feld02 = Left(cString,intpos(i)-1) 
09.
      If i =  3 Then Feld03 = Left(cString,intpos(i)-1) 
10.
      If i =  4 Then Feld04 = Left(cString,intpos(i)-1) 
11.
      If i =  5 Then Feld05 = Left(cString,intpos(i)-1) 
12.
      cString = Right(cString,Len(cString)-intpos(i)) 
13.
      ' den String linksseitig kürzen 
14.
   Next 
15.
   posKomma = InStr(Feld05,",") 
16.
   Nachname = Left(Feld05,posKomma-1) 
17.
   Vorname = Right(Feld05,Len(Feld05)-posKomma) 
18.
   dSatz_neu = LOGTXT ' Zeile bleibt unverändert 
19.
   If Feld03 > 1 Then ' Anredeindex nicht Firma 
20.
      dSatz_neu = Feld01 &";" & Feld02 &";" & Feld03 &";" & Feld04 &";" & Vorname &";" & Nachname &";" & cString 
21.
   End if 
22.
   RechOut.WriteLine( dSatz_neu )    ' neuen Datensatz in Datei schreiben 
23.
End Sub
Gruss

Matthias
Bitte warten ..
Mitglied: sledge1
28.11.2008 um 09:27 Uhr
Danke euch allen für eure Hilfe,

konnte das Thema in Perl erledigen.

Grüße Sledge1
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV
Frage von Matzus87Batch & Shell3 Kommentare

Hallo Zusammen, ich bin neu hier und arbeite mich gerade in die Batch Programmierung ein. Ich sitze momentan an ...

Batch & Shell
Batch zum automatischen Bearbeiten eines Wertes
gelöst Frage von M-K-D-BBatch & Shell20 Kommentare

Hallo, ich versuche mich gerade daran, einen Wert in der Registry per Batch zu bearbeiten, komme aber nicht so ...

Batch & Shell
Batch : alle Dateien eines Ordners bearbeiten
gelöst Frage von deguonkelBatch & Shell1 Kommentar

Hallo, ich habe folgendes Problem, ich habe ein fertiges Batch-Programm, bei dem man einen Dateipfad angibt, und diese Datei ...

Batch & Shell
Registry Einträge erstellen bzw. bearbeiten mit Batch
gelöst Frage von rubber11Batch & Shell4 Kommentare

Hallo zusammen, ich möchte für meine Clients einen Batch schreiben, welcher es ermöglicht, dass die Serveradresse mittels HTTPS im ...

Neue Wissensbeiträge
Windows 10

Windows 10 Fall Creators Update - Neue Funktion Hyper-V Standardswitch kann ggf. Fehler bei Proxy Configs verursachen

Erfahrungsbericht von rzlbrnft vor 3 StundenWindows 101 Kommentar

Hallo Kollegen, Da wir die Gefahr lieben, haben wir bei einigen Usern nun mittlerweile das Creators Update drauf. Einige ...

Sicherheit

TLS-Zertifikat und privater Schlüssel von Microsofts Dynamics 365 geleakt

Information von Penny.Cilin vor 5 StundenSicherheit

Microsoft hat versehentlich das TLS-Zertifikat inklusive dem privaten Schlüssel seiner Business-Anwendung Dynamics 365 geleakt. TLS-Zertifikat und privater Schlüssel von ...

Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 1 TagViren und Trojaner2 Kommentare

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Firefox Profieles im Roaming
gelöst Frage von Hendrik2586Netzwerkmanagement17 Kommentare

Hallo liebe Leute. :) Ich hab da ein kleines Problem, welches anscheinend nicht unbekannt ist. Wir nutzen hier in ...

LAN, WAN, Wireless
Brainstorming, einfachste Option 1 getrenntes LAN (mit WAN zugang)
Frage von 132954LAN, WAN, Wireless13 Kommentare

Hi, folgendes: Wir bekommen eine Glasfaser Leitung, Und das sollte Optional so aussehen: Ein Modem/Router für das WAN, ein ...

Netzwerkgrundlagen
Hi eine blöde frage. xD
Frage von 132954Netzwerkgrundlagen12 Kommentare

Also: Habe 2012 r2 essentials neuinstalliert, allerdings installiert diese version ja gleich diesen gangen AD kram mit, den hab ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...