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

Automatisches umwandeln bzw. konvertieren von xls in ein txt format

Frage Entwicklung Datenbanken

Mitglied: knut4linux

knut4linux (Level 1) - Jetzt verbinden

09.01.2009, aktualisiert 13:02 Uhr, 9280 Aufrufe, 10 Kommentare

Beim Datenbankexport in eine TXT-Datei, werden Tabulatoren als "Leerzeichen" dargestellt

Mahlzeit liebe Admins und Script-Gurus....

Ich verzweifel an folgendem Problem (fasse es extrem kurz).

Ich will, mittels einem Datenbankexport, unsere Lagerbestandsliste in eine Textdatei (Tabulatorgetrennt/Tabstopgetrennt) exportieren. Leider sieht es nur optisch so aus, als wären es Tabulatoren. In wirklichkeit sind es Lerrzeichen.
Exporteiere ich meine Daten in ein xls Format (Excelldatei), und speichere diese Datei im Excell selbst dann als Tabulatorgetrennte Datei (TXT), sind es wirklich richtige Tabstops.
Ich vermute, dass es mehr ein Softwareproblem unserer Anwendungssoftware ist.

Daher wollte ich fragen, ob ihr villeicht ne Möglichkeit kennt, wie ich per Taskmanager und einem Script sagen kann, dass er die Excelldatei in eine TXT datei konvertieren soll, ohne dass auch nur eine Officeanwendung nötig ist.

Folger Hintergrund:

- Die exportierte Datei wird auf dem Server (SBS2003) gespeichert
- Eine Batch lädt im stündlichen Intervall diese Datei auf einen entfernten FTP hoch
- In der Datei sind unsere Lagerbestandslisten die in einem Unternehmensnetzwerk via web veröffentlicht werden.

Damit der ganze Spaß auch funktioniert, muss die Datei unbedingt eine txt Datei sein.

Hat jemand von euch ne Idee wie ich das durch reines Scripting lösen kann? Ich will keine extra Software installieren, die diesen Spaß macht.

Vielen Dank im Voraus für eure Hilfe

Gruß,
Knut
Mitglied: 60730
09.01.2009 um 13:29 Uhr
Servus,

wenn ich deine Zeilen richtig interpretiere, müßte deine Überschrift lauten:

Suche Script um aus einer Textdatei mit fester Spaltenbreite eine CSV Datei zu erstellen?

XLS benutzt du ja nur als zwischenschritt.

richtig?
Bitte warten ..
Mitglied: knut4linux
09.01.2009 um 13:37 Uhr
Nein, vielleicht habe ich mich falsch ausgedrückt.

Ich kann ja meine Bestandsliste aus der Datenbank schon in einer txt exportieren. Nur sind die Tabellen dort leider nicht Tabulator getrennt. Bzw, sind sie optisch Tabulatorgtrennt.
Ich will mal versuchen, dass Ding visuell darzustellen.

'# = Tabulator
- = Leerzeichen

Bei einem export, der Daten in eine TXT sieht es so aus:

Daten---------Daten----------Daten

Soll aber so sein:

Daten#Daten#Daten

Jetzt mal so, wie es aufwendig funktioniert.

Datenexport in ein Excellformat speicher -> OK. Excelldatei öffnen, Datei -> Speichern unter ->Dateiname.txt. Ergebniss:

Daten#Daten#Daten

Und genau diesen Schritt, dass Ding jedesmal von einem Excellformat in einer TXT zu konfertieren, will ich mir ersparen.

Verstehst du jetzt was ich meine??
Bitte warten ..
Mitglied: 70620
09.01.2009 um 13:56 Uhr
Wie exportierst du denn in TXT?
Da wirst du doch sicherlich die Möglichkeit haben das Umzustellen

Alternativ ein Script in Excel, welches per Button die Datei öffnet und neu speichert.. aber ist 1. Arbeit zu Pogrammieren und 2. Ein Zusatzschritt der nicht optimal ist
Bitte warten ..
Mitglied: knut4linux
09.01.2009 um 14:04 Uhr
Ich habe keine Möglichkeit, etwas einzustellen wenn ich den export in eine txt mache. Dies wird von dem Layout, in welches gedruckt wird schon vorgegeben. Das Layout habe ich selbst geschrieben. Falls es jemand interessiert oder das wichtig ist, mit Crystal Reports. Das spielt hier aber keine Rolle.

Im Layout sind schon alle Einstellungen festgelegt (Tabulator, Schriftgröße, Schriftart usw)

Alternativ ein Script in Excel, welches per Button die Datei öffnet und neu speichert

wieder ein Schritt mehr, Zeitaufwendig.
Bitte warten ..
Mitglied: Iwan
09.01.2009 um 14:43 Uhr
hallo,

wenn es im Programm selber die Möglichkeit nicht gibt, das die Trennung mit Tabs statt Leerzeichen geht, dann wirst du wohl im einen weiteren Schritt nicht drum herum kommen
evtl. könnte man das ganze auch mit einem VBS-Skript machen, was die Leerzeichen durch ein Tab ersetzt
Bitte warten ..
Mitglied: bastla
09.01.2009 um 14:49 Uhr
Hallo knut4linux!

Um nochmals TimoBeils Frage aufzugreifen: Wenn der direkte Export "optisch Tabulatorgtrennt" ausssieht, wäre ich auch davon ausgegangen, dass die einzelnen Felder eine jeweils konstante Spaltenbreite haben - den Satz auf dieser Basis zu trennen und die überzähligen Leerzeichen zu entfernen erforderte zB mit einem VBScript nicht viel Aufwand ...

[Edit] ... nämlich etwa so:
01.
FIn   = "D:\Test.txt" 
02.
FOut  = "D:\TestWithTabs.txt" 
03.
ColsW = Array(10,7,8,5,20) 'Spaltenbreiten der einzelnen Felder 
04.
Delim = vbTab 'Trennzeichen im Ergebnis 
05.
 
06.
UCols = UBound(ColsW) 'Anzahl Spalten ermitteln 
07.
ColsS = ColsW 'Array für Startpositionen der einzelnen Spalten erzeugen 
08.
ColsS(0) = 1 'Vorgabe Startposition des ersten Feldes in der Zeile (nicht null-basiert) 
09.
For i = 1 To UCols 'Startpositionen der übrigen Felder ermitteln 
10.
	ColsS(i) = ColsS(i-1) + ColsW(i-1) 'Startposition abhängig von vorhergehender Startposition 
11.
Next 
12.
 
13.
Set fso = CreateObject("Scripting.FileSystemObject") 
14.
Lines = Split(fso.OpenTextFile(FIn).ReadAll, vbCrLF) 'Daten in Array einlesen 
15.
ULines = UBound(Lines) 'Anzahl der Zeilen ermitteln 
16.
 
17.
Set FileOut = fso.CreateTextFile(FOut, True) 'Ausgabedatei öffnen (ev bereits bestehende Datei wird überschrieben) 
18.
For i = 0 To ULines 'alle eingelesenen Zeilen einzeln bearbeiten 
19.
    LineOut = "" 'Ausgabezeile initialisieren 
20.
    For j = 0 To UCols 'alle Spalten der Zeile einzeln bearbeiten 
21.
        Field = Trim(Mid(Lines(i),ColsS(j),ColsW(j))) 'Feld aufgrund der Position und Breite einlesen und überzählige Leerzeichen entfernen 
22.
        LineOut = LineOut & Delim & Field 'Feld durch Trennzeichen ("Delim") getrennt an Satz anfügen 
23.
    Next 
24.
    If i < ULines Then LineOut = LineOut & vbCrLF 'an alle außer die letzte Zeile eine Zeilenschaltung anfügen, ... 
25.
    FileOut.Write Mid(LineOut, Len(Delim) + 1) '... überzähliges Trennzeichen am Beginn der Zeile entfernen und in Datei schreiben 
26.
Next 
27.
FileOut.Close
Damit wird aus
123456789 123456 1234657 1234 12345678901234567890 
123456    1236   1       12   123456789012         
12345678  123    1234    123  123456789012345678   
123       123456 123     1234 1234567890 
1         1      1       1    1
das:
123456789	123456	1234657	1234	12345678901234567890 
123456	1236	1	12	123456789012 
12345678	123	1234	123	123456789012345678 
123	123456	123	1234	1234567890 
1	1	1	1	1
[/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: knut4linux
09.01.2009 um 23:34 Uhr
@bastla, vielen Dank. Ich glaube damit könnte ich das wirklich in den Griff bekommen.

werde es am Montag gleich mal testen und berichten.

Danke und schönes WE @ll.
Bitte warten ..
Mitglied: knut4linux
12.01.2009 um 12:20 Uhr
@bastla

Dein Script haut genau so hin. *niederkniehend vor dir hinwerf

Danke für alles antworten, bis demnächst
Bitte warten ..
Mitglied: bastla
12.01.2009 um 13:16 Uhr
@knut4linux
*niederkniehend vor dir hinwerf
Ich freu' mich ...

... aber brich Dir bitte nix.

Grüße
bastla
Bitte warten ..
Mitglied: JayjayLee
24.10.2016 um 17:03 Uhr
Hallo, bin über google auf diesen Eintrag gestolpert.
Guter job, hat mich auch ein wenig schlauer gemacht, aber....
Ich habe ein ähnliches Problem, die txt mit Tabulatoren ist immer schön lesbar ausgerichtet (hierbei immer mit Leerzeichen aufgefüllt).
Ich kann leider nicht die Spaltenbreiten fest definieren, diese sind immer unterschiedlich, Beispiel:

01.
2574              	       	     123456	   18,17	EUR    	        1 
02.
DR3300            	       	     123456	   93,07	EUR    	      138 
03.
LC1000BK          	       	     123456	   14,18	EUR    	        2
ich brauche jedoch:
01.
2574		123456	18,17	EUR	1 
02.
DR3300		123456	93,07	EUR	141 
03.
LC1000BK		123456	14,18	EUR	2
Eine Besonderheit noch: vor der 123456 kommt noch eine leere spalte, somit habe ich 6 Spalten.
Ist dieser script für meine Zwecke anpassungstauglich?
Vielen Dank im voraus.
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst txt mit UTF-8 Codierung per batch in ANSI Codierung umwandeln (3)

Frage von pdiddo zum Thema Batch & Shell ...

Webentwicklung
HTML Output in eine txt Datei mit VisualBasicScript (2)

Frage von coca22COCA zum Thema Webentwicklung ...

Batch & Shell
Merkwürdige Zeilenformatierung in txt Datei (3)

Frage von miczar zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...