Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Formatierung eines Textdokumentes wie ein Roboter

Frage Entwicklung Batch & Shell

Mitglied: EsstMehrBiberSchuetztDenWald

EsstMehrBiberSchuetztDenWald (Level 1) - Jetzt verbinden

07.11.2007, aktualisiert 22.11.2007, 3213 Aufrufe, 10 Kommentare

Hallo zusammen

Meine Frage betrifft das formatieren von einem Textdokument.

Gegeben: - Massenweise Text aneinander geschrieben .....

Gesucht: - Ein Programm das nach x Buchstaben x tabulatoren einfügt.

Im Text sind zb. Geburtsdaten, Orte, Namen drin ..... alles aneinander und schlussentlich soll es so aussehen

Albert 1.1.1990 Embrach
Berta 2.1.1990 Bülach
Carla 3.1.1990 Zürich
.......


Vorher sah es so aus ..


Albert 1.1.1990, 1.1.1990, Embrach,,, Berta, 2.1.1990, Bülach,,, Carla, 3.1.1990, Zürich,,, ................

Da ich sicher schleifen benutzen muss ist meine

Frage an euch: "Mit welchen Befehlen muss ich hier arbeiten?" :D

Habe schon diverse batch tutorials angeschaut und nichts treffendes gefunden (ausser die schleifen .. ) ....

Danke schon im voraus für eure Antwort

gruss

Alex
Mitglied: EsstMehrBiberSchuetztDenWald
07.11.2007 um 13:14 Uhr
vieleicht noch als hinweis .... man müsste bat irgendwie erklären das es alle ";" durch tabulatoren ersetzt .... geht das überhaupt oder muss man da auf andere programme zurückgreifen? :D
Bitte warten ..
Mitglied: bastla
07.11.2007 um 18:10 Uhr
Hallo EMBSDW!

01.
@echo off & setlocal 
02.
set "Ein=D:\Alle Geburtstage in einer Zeile.txt" 
03.
set "Aus=D:\Geburtstagsliste.txt" 
04.
 
05.
set "Cvt=%temp%\ConvSC.vbs" 
06.
echo WScript.Echo Replace(Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile("%Ein%", 1).ReadAll, ";;;", vbCrLF), ";", vbTab)>"%Cvt%" 
07.
cscript //nologo "%Cvt%">"%Aus%" 
08.
del "%Cvt%"
Grüße
bastla
Bitte warten ..
Mitglied: EsstMehrBiberSchuetztDenWald
08.11.2007 um 08:29 Uhr
hm .. danke vielmals für die arbeit die du heir reingesteckt hast ..... aber ich habe noch probleme mit den daten anzupassen, sprich was wo rein kommt ... da ich es ja schlecht 1 zu 1 übernehmen kann ... .:D

Code:

@echo off & setlocal
set "Ein=Z:\Treueabo_tab.csv"
set "Aus=Z:\Endergebnis.txt"

set "Cvt=%temp%\ConvSC.vbs"
echo WScript.Echo Replace(Replace(CreateObject("Scripting.FileSystemObject").OpenTextFile("%Ein%", 1).ReadAll, ";;;", vbCrLF), ";", vbTab)>"%Cvt%"
cscript //nologo "%Cvt%">"%Aus%"
del "%Cvt%"

Ich habe nun einfach die Datei mit dem Text eingegeben (Z:\Treueabo_tab.csv") bzw. pfad
und die datei die es erstellen sollte .... (Z:\Endergebnis.txt") bzw. pfad


Ergebnis:

Ein Textfile mit folgendem Inhalt:

˜çI


Keine Ahnung was der bedeutet ... :D

Gruss

Alex
Bitte warten ..
Mitglied: bastla
08.11.2007 um 11:44 Uhr
Hallo EMBSDW!

Könnte ein Codepage-Problem sein (je nach Datenherkunft ASCII/ANSI) - versuch es mit dieser Variante:
01.
@echo off & setlocal 
02.
set "Ein=Z:\Treueabo_tab.csv" 
03.
set "Aus=Z:\Endergebnis.txt" 
04.
 
05.
set "Cvt=%temp%\ConvSC.vbs" 
06.
echo Set fso=CreateObject("Scripting.FileSystemObject"):fso.OpenTextFile("%Aus%",2,True).Write Replace(Replace(fso.OpenTextFile("%Ein%",1).ReadAll,",,, ",vbCrLF),",",vbTab)>"%Cvt%" 
07.
cscript //nologo "%Cvt%" 
08.
del "%Cvt%"
Als Anmerkung: Da Dein Beispiel und Deine Beschreibung oben widersprüchlich waren (im Beispiel war das Tennzeichen ein ","/ lt nächstem Post wolltest Du alle ";" durch Tab ersetzt haben) musste ich raten und habe als Trennzeichen ";" verwendet ... [Edit] ... und bin damit daneben gelegen - jetzt also mit "," [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: EsstMehrBiberSchuetztDenWald
08.11.2007 um 11:54 Uhr
hehe .... sorry das ist mein fehler es sollten eigentlich kommas sein ... :D

ich habe un beim code die 3 ";" durch kommas ersattzt und das programm gibt mir folgendes aus ..

ein textfile mit paar hundert "tabs" und nachher ganz normal mein text .. :D
Bitte warten ..
Mitglied: bastla
08.11.2007 um 12:08 Uhr
Hallo EMBSDW!

Es gibt noch eine Stelle mit einem ";" - ich ändere das gleich oben auf ",".

Für Dein obiges Beispiel sieht dann das Ergebnis bei mir so aus:
01.
Albert 1.1.1990	 1.1.1990	 Embrach 
02.
Berta	 2.1.1990	 Bülach 
03.
Carla	 3.1.1990	 Zürich 
04.
................
Grüße
bastla
Bitte warten ..
Mitglied: EsstMehrBiberSchuetztDenWald
08.11.2007 um 13:04 Uhr
genau so sollte es aussehen .. :D

Danke euch vielmals für eure mühe ...

gruss

alexander
Bitte warten ..
Mitglied: EsstMehrBiberSchuetztDenWald
22.11.2007 um 12:52 Uhr
So da bin ich wieder ....

Nach näherem betrachten des Textfiles habe ich folgende Fehler festgestelllt

1. Ein Teil des Text wird abgeschnitten ....

2. Am Anfang des Textfiles folgen zeurst mal xxx Tabulatoren

Für Punkt eins habe ich ehrlich gesagt keine Erklärung ... ich frage mich ob vieleicht was mit dem "fortmatierungs File" nicht stimmt ... (die Anfangsdaten).

Zu Punkt zwei kann ich mir nur vorstellen, dass die Schleife am anfang aus irgend einem Grund leer läuft ,sprich nur den Tabulator ausführt ...

Der Quellcode sieht folgendermassen aus:

@echo off & setlocal
set "Ein=Z:\Treueabo_tab.csv"
set "Aus=Z:\Endergebnis.txt"

set "Cvt=%temp%\ConvSC.vbs"
echo Set fso=CreateObject("Scripting.FileSystemObject"):fso.OpenTextFile("%Aus%",2,True).Write Replace(Replace(fso.OpenTextFile("%Ein%",1).ReadAll,",,, ",vbCrLF),",",vbTab)>"%Cvt%"
cscript nologo "%Cvt%"
del "%Cvt%"

Vieleicht könnt ihr mir noch folgende Passage erklären .. ? :D

cscript
nologo "%Cvt%"

Was bewirkt die?
Bitte warten ..
Mitglied: bastla
22.11.2007 um 15:11 Uhr
Hallo EMBSDW!

01.
cscript //nologo "%Cvt%"
startet einfach das in der "echo"-Zeile erstellte VBScript "%temp%\ConvSC.vbs". Wozu das "//nologo" dient, siehst Du, wenn Du es einmal weg lässt ...

Das angesprochene Script
- liest den gesamten Inhalt der Datei %Ein%,
- ersetzt die Kombination ",,, " durch eine Zeilenschaltung, danach
- jedes "," durch Tab und
- schreibt das Ergebnis in die Datei %Aus%.

Da ich nur Dein oben gepostetes Musterbeispiel zur Verfügung hatte (habe), kann ich nicht feststellen, woher die beschriebenen Fehler stammen könnten - dass allerdings bei einer reinen Textdatei ohne irgendwelche enthaltenen Sonderzeichen Textteile abgeschnitten werden, dürfte eigentlich nicht passieren - versuch es aber zur Sicherheit mit der folgende Zeile (als Ersatz für die bisherige "echo"-Zeile):
01.
echo Set fso=CreateObject("Scripting.FileSystemObject"):S=fso.GetFile("%Ein%").Size:fso.OpenTextFile("%Aus%",2,True).Write Replace(Replace(fso.OpenTextFile("%Ein%",1).Read(S),",,, ",vbCrLF),",",vbTab)>"%Cvt%"
Grüße
bastla
Bitte warten ..
Mitglied: EsstMehrBiberSchuetztDenWald
22.11.2007 um 15:59 Uhr
Hallo Bastla

Danke vielmals für deine Hilfe .... habe nun den von dir vorgegebenen Quelcode ersetzt .. :D

Das Ergebnis ist, dass die Tabulatoren die vorher am Anfang des Dokuments waren verschwunden sind ... :D

Es steht nur noch ein Satz schief formatiert da ... aber soviel ich weiss stimmt da was mit den zu formatierenden Daten nicht.

Ich denke somit wäre das Problem wieder einmal behoben und ich bedanke mich nochmals für deine Hilfe .. :D

grüsse aus Zürich

Alexander
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Powershell - Formatierung der Ausgabe (2)

Frage von Scroller zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell export saubere Formatierung (6)

Frage von zamsi7 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (29)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...