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, 3239 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell export saubere Formatierung (6)

Frage von zamsi7 zum Thema Batch & Shell ...

Microsoft Office
gelöst Bedingte Formatierung in Excel für verschiedene Dezimalstellen (6)

Frage von winget zum Thema Microsoft Office ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (56)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (22)

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

Windows Server
Upgrade von Win Server 2008 auf 2012 gescheitert (19)

Frage von Ghost108 zum Thema Windows Server ...