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

Mitglied: sledge1

sledge1 (Level 1) - Jetzt verbinden

14.11.2008, aktualisiert 28.11.2008, 4302 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:

https://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 : 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 ...

Batch & Shell

Batch-Problem Inhalt aus Datei auslesen, bearbeiten und dann wieder speichern

gelöst Frage von AllForOne94Batch & Shell9 Kommentare

Hallo Com, Ich habe eigentlich ein relativ simples Problem. Meine Ausgangsdatei ist so aufgebaut: 0,00h 1,00h 2,18h 3,00h 4,00h ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 13 StundenWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 13 StundenSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 1 TagDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 1 TagSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
Exchange Server
Exchange Postfach Einbindung Betriebs-rat -Arzt, Bewerbung .
gelöst Frage von YellowcakeExchange Server23 Kommentare

Hey ich habe da mal eine Denksport Aufgabe bekommen Genutzt wird ein Exchange Server 2010. hier gibt es den ...

Windows Server
Downgrade von Windows Server 2016 auf 2012 - Wie vorgehen?
Frage von EstefaniaWindows Server13 Kommentare

Guten Ich habe eine Frage an Erfahrene unter euch. Durch einen InPlace Upgrade wurde Windows Server 2012 auf die ...

Datenschutz
Telematikinfrastruktur Erfahrungsaustausch
Frage von MOS6581Datenschutz12 Kommentare

Moin, unter meinen Kunden befinden sich auch einige Ärzte, welche sich künftig mit der Telematikinfrastruktur-Geschichte der Gematik herumärgern dürfen. ...

Windows Server
Delgegierte OU via RDP verwalten - Objektverwaltung zuweisen
gelöst Frage von TOAOICEWindows Server12 Kommentare

Hallo, ich habe folgendes Problem. Ich möchte in meiner Domäne (Server2016), einer Gruppe (OUAdmin) Berechtigungen auf die OU Test ...