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

Excel zur Textdatei Wandeln

Frage Entwicklung Batch & Shell

Mitglied: Underdog81

Underdog81 (Level 1) - Jetzt verbinden

28.08.2012 um 17:37 Uhr, 2648 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
VB for Applications
Abschnitte aus Textdatei in Excel importieren
Frage von Einstein77VB for Applications3 Kommentare

Hallo, Ich habe ein Problem wo ich mangels VBA kenntissen nicht weiter komme. Ich muß Email Daten auswerten. Aus ...

IDE & Editoren
UltraEdit: Textdatei für Excel aufbereiten
gelöst Frage von newbie58IDE & Editoren12 Kommentare

Hallo, ich habe eine Textdatei (Ausschnitte aus einem NC-Programm) die wie folg aussieht: 5112281 ; NC_JOB: 30001 VORFRAESEN AUSLASSSEITE ...

Windows 8
ESD in WIM wandeln ohne Installation und Recapture?
gelöst Frage von LochkartenstanzerWindows 87 Kommentare

Moin Kollegen, Ich wollte mal in die Runde fragen, ob jemand inzwischen einen kürzeren Weg weiß, die per Download ...

VB for Applications
Textdateien Importieren in Excel - erste Zeile weg lassen!
gelöst Frage von micha020983VB for Applications4 Kommentare

Hallo zusammen, ich hab immer wiederkehrend mehrere Semikolongetrennte Textdateien, welche ich untereinander in Excel brauche! Klappt hiermit schon ganz ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 8 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 12 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware8 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...