flowberlin
Goto Top

Daten aus einer csv datei geordnet ausgeben

Daten aus einer csv datei geordnet ausgeben

Hallo Leute,

Ich habe eine Batch Datei, welche eine bestimmte zeile aus einer .csv datei ausgeben soll.
Meine Frage ist nun, wie kann ich eine geordnete ausgabe daraus machen?

Hier die Zeilenstruktur aus der .csv
Nr.;Kategorie;Bezeichnung;Hersteller;Lager-Ort;Menge
1;Protokoll;testbezeichner;IT;Lager;4Stueck

und so sollte es auf dem bildschirm ausgegeben werden
Nr. : 1
Kategorie : Protokoll
Bezeichnung : testbezeichner
Hersteller : IT
Lager-Ort : Lager
Menge : 4Stueck


Hoffe ihr könnt mir helfen face-smile

Content-Key: 178369

Url: https://administrator.de/contentid/178369

Printed on: April 25, 2024 at 22:04 o'clock

Member: bastla
bastla Jan 04, 2012 at 14:10:42 (UTC)
Goto Top
Hallo FlowBerlin und willkommen im Forum!

Du solltest erklären, wodurch die "eine bestimmte zeile aus einer .csv datei" bestimmt wird ...

... soferne es die Nr sein sollte, könnte ein Batch etwa so aussehen:
@echo off & setlocal enabledelayedexpansion
set "CSV=D:\Daten.csv"  
set "Nr=1"  

set /a Feld=1
set /p Felder=<"%CSV%"  
for %%i in (%Felder%) do (
    set "Feldname!Feld!=%%i"  
    set /a Feld+=1
)

set /a Feld=1
for /f "delims=" %%a in ('findstr /b "%Nr%;" "%CSV%"') do (  
    for %%i in (%%a) do (
        call echo %%Feldname!Feld!%%: %%i
        set /a Feld+=1
    )
)
Hinweis: Bei diesem Ansatz darf In den Daten kein "!" oder zB Leerzeichen vorkommen ...

Grüße
bastla
Member: FlowBerlin
FlowBerlin Jan 04, 2012 at 16:45:20 (UTC)
Goto Top
hey bastla,

danke für deine rasche antwort.

Also es ist die Nummer nach der ich suche. ... Mir ist noch unklar bei deiner Lösung, wie ich die " Nr.;Kategorie;Bezeichnung;Hersteller;Lager-Ort;Menge " im gegensatz zu den daten einlese.

Kannst du mir das nochmal kurz erläutern?

Danke dir schonmal im Vorraus face-smile
Member: bastla
bastla Jan 04, 2012 at 16:54:04 (UTC)
Goto Top
Hallo FlowBerlin!
Mir ist noch unklar bei deiner Lösung, wie ich die " Nr.;Kategorie;Bezeichnung;Hersteller;Lager-Ort;Menge " im gegensatz zu den daten einlese.
Entsprechend Deines Musters stehen die Feldnamen in der ersten Zeile der Datei - diese wird in Zeile 6 des Batches in die Variable %Felder% eingelesen und in den folgenden Zeilen 7 bis 10 aufgeteilt und den Variablen %Feldname1% bis %Feldname6% (siehe Zähler %Feld%) zugewiesen.

Das Einlesen selbst erfolgt per "Eingabeumleitung" - mit
set /p Felder=<Datei
kann so die erste Zeile (und nur diese) einer Textdatei in eine Variable übernommen werden.

Grüße
bastla