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

Excel zur Textdatei Wandeln

Frage Entwicklung Batch & Shell

Mitglied: Underdog81

Underdog81 (Level 1) - Jetzt verbinden

28.08.2012 um 17:37 Uhr, 2628 Aufrufe, 3 Kommentare

Hallo ich versuch mich gerade an einer mir fast unlöslichen Aufgabe aber ich bin zuversichtlich,
daß ich hier Hilfe finde bei euch.

Ich habe von meinem Chef den Wunsch eine Dateiverarbeitung zu basteln.
Hier müssen feste Daten in der neuen Datei eingegeben werden.
Zusätzlich wird ein "Counter" benötigt und eine Abfrage in der Excel um zu schauen
was in die neue Textdatei rein soll.
SChon mal ein Dankeschön für alle Antworten und jede Hilfe hier im Forum.

Dann versuch ich mal die Idee zu beschreiben.

Grundbaustein ist eine Exceldatei die in mehreren Spalten unterschiedliche Infos stehen hat.
A = Artikelnummer
B = Menge
C = Artikelname
D = Preis
usw.

Hier brauchen wir nur die Informationen aus Spalte A und B.
Es soll geschaut werden ob ab zeile 2 eine Artikelnummer steht und in Menge was eingetragen ist.
Steht was in Menge sollen diese Infos in die neue Datei und dann weiter in die nächste Zeile und suchen.
Wenn keine Menge angegeben ist soll in der nächsten Zeile weitersuchen ohne etwas in die neue Datei einzutragen.
Findet er in Spalte A keine Artikelnummer mehr ist er fertig.


Aufbau der neune Datei (Textdatei)

K;Bestellung vom Kunden;10007;
D;1;4008;60;JA;

In der ersten Zeile haben wir die Kofzeile, bei der sich nur die Kundennummer (10007)
ändern kann.
in der zweiten Zeile haben wir
D = neue Datenzeile
1 = Positionsnummer (Counter der fortlaufen muss 1,2,3,4 usw.)
4008 = Artikelnummer (aus der Excel wie oben beschrieben)
60 = Menge (aus der Excel wie oben beschrieben)
JA = Befehlsparameter für die Spätere Verarbeitung


Beispiel mit 3 Artiekeln die in der Excel gefunden wurden.

K;Bestellung vom Kunden;10007;
D;1;4008;60;JA;
D;2;33;5;JA;
D;3;257;10;JA;


So nun habe ich selber auch schon ein Wenig probiert aber komme nicht weiter.
Ich habe hier schon eine Abfrage drin für die Kopfzeile, damit man die Kundennummer
eintragen kann zu der bestellung die per Excel übergeben wird.
Hier mal das was ich als nützlich finde


@echo off & setlocal enabledelayedexpansion
set "out=R:Excelbearbeitung\Kundenbestellung in Excel\Dateien\Kunden.txt"
set "cnt=0"
echo Bitte geben Sie die Kundennummer ein:
set /p "num=
>"%out%" echo K;Bestellung vom Kunden;%num%;
for /f "usebackq tokens=1,2 delims=," %%s in ("%~dpn1.csv") do (
set /a "cnt+=1"
>>"%out%" echo D;!cnt!;%%s;%%t;Ja;
)



Ich dank euch schon mal für eure Hilfe und hoffe, daß ihr mir helfen könnt.

Mit freundlichem Gruß Underdog81





Mitglied: bastla
28.08.2012, aktualisiert um 19:11 Uhr
Hallo Underdog81!

Bis auf die Tatsache, dass die CSV-Datei etwas abenteuerlich festgelegt wird, könnte das etwa so gehen:
01.
@echo off & setlocal enabledelayedexpansion 
02.
set "out=Kunden.txt" 
03.
set /a cnt=0 
04.
set /p num=Kundennummer:  
05.
>"%out%" echo K;Bestellung vom Kunden;%num%; 
06.
for /f "usebackq skip=1 delims=" %%i in ("%~dpn1.csv") do ( 
07.
    set "Zeile=%%i" 
08.
    for /f "tokens=1-2 delims=," %%s in ("!Zeile:,,=,§,!") do ( 
09.
        if "%%t" neq "§" ( 
10.
            set /a "cnt+=1" 
11.
            >>"%out%" echo D;!cnt!;%%s;%%t;Ja; 
12.
13.
14.
)
Da die Spalte 2 leer sein kann und dann 2 Kommata aufeinander folgen, diese aber von der "for"-Schleife als nur ein Trennzeichen interpretiert würden, muss vorweg ein Kennzeichen (§) für eine leere Spalte eingetragen werden - dieses kann dann abgefragt werden, um eine nicht vorhandene Menge zu erkennen.

Grüße
bastla

P.S.: Den Threadtitel solltest Du noch überarbeiten, da die Ausgangsdatei ja bereits im CSV- (und nicht im Excel-)Format vorliegt (dann wäre VBS/VBA, nicht Batch das richtige Werkzeug) ...
Bitte warten ..
Mitglied: Underdog81
29.08.2012 um 09:08 Uhr
Ausgangsdatei ist aber wirklich eine EXCEL

und selbst wenn ich deine Batch nehme bekomme ich
den gleichen Aufbau wie bei meiner.
Bitte warten ..
Mitglied: bastla
29.08.2012 um 09:37 Uhr
Hallo Underdog81!

Exceldateien haben nicht den Dateityp ".csv" (und aus einer solchen wird in Zeile 6 gelesen) - Excel kann solche Dateien aber öffnen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel VBA: Automatische Konvertierung von Textdatei (.txt) zu Exceldatei (.xlsx) (7)

Frage von Booster07 zum Thema Microsoft Office ...

VB for Applications
gelöst EXCEL Macro oder ähnliches gesucht (3)

Frage von reissaus73 zum Thema VB for Applications ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...