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

Mit einer Batch eine Excel Tabelle auslesen.

Frage Entwicklung Batch & Shell

Mitglied: Hummel85

Hummel85 (Level 1) - Jetzt verbinden

18.05.2006, aktualisiert 18.10.2012, 21147 Aufrufe, 16 Kommentare

Hallo,

ich hab schon wieder die nächste Frage zu einer Batch. Ist es möglich bestimmte bereiche aus einer Excel Tabelle mittels batch auszulesen? Also nur zur Info für euch. Ich habe eine Excel Tabelle( es sind immer verschiedene aber der Aufbau an sich ist immer gleich). Will dort einige Daten auslesen die ich dann weiter verarbeiten kann.

Vielen Dank im Voraus.
Mitglied: gogoflash
18.05.2006 um 13:15 Uhr
Hi,

mit Excel wirds schwierig, aber als *.csv Datei. Sollte es gehen. Excel bietet das Format an.Spalten werden dann mit Semikon getrennt.
Oder *.prn

Schau Dir mal beides an.


Gruß Miguel
Bitte warten ..
Mitglied: Hummel85
18.05.2006 um 13:41 Uhr
Hi gogoflash,

vielen dank für die schnelle Antwort war vor allem sehr hilfreich. also mit *.csv kann ich schon was anfangen aber mit *.prn leider nicht. Aber eines reicht ja auch. Jetzt brauch ich nur noch eine Möglichkeit bestimmte bereiche aus dieser *.csv( ist ja nicht mehr als eine Textdatei) auszulesen und in meine Batch zu übertragen.

Vielen dank noch mal. Wenn jemand ein schnellen weg kennt wie ich die Daten aus der *.csv auszulesen, kann das hier gleich Posten.
Bitte warten ..
Mitglied: gogoflash
18.05.2006 um 13:43 Uhr
Hi,

dann musst Du schon sagen, wie zu auf die einzelnen Bereiche zugreifen willst.
Suchen nach Stichwörtern. In Zeile oder Spalte gehen?

Sag mal wie Du es Dir vorstellst.

Als Beispiel:
Für eine Tabelle mit 7 Spalten getrennt durch Semikolons (Auswertung ab der 2 Zeile)

for /f "skip=2 tokens=1,2,3,4,5,6,7 delims=;" %%a in (p.csv) do echo %%a >> excel.txt

Der Inhalt der ersten Spalte wird ausgelesen.

[EDIT: Ed geht auch
for /f "skip=2 tokens=1-7 delims=;" %%a in (p.csv) do echo %%a >> excel.txt

Nur für die erste Spalte
for /f "skip=2 tokens=1 delims=;" %%a in (p.csv) do echo %%a >> excel.txt

]


Gruß Miguel
Bitte warten ..
Mitglied: Hummel85
18.05.2006 um 14:11 Uhr
Sorry habe ich vergessen.

Also die Excel Tabelle exestiert schon muss aber noch umgebaut werden.

Ich habe mir das so vorgestellt.

14 Spalten( brauche aber nur 10 Spalten auslesen)
Anzahl der Zeilen kann variieren.( Aber 3 Zeilen gehören immer zusammen die ersten beiden Spalten gehören zu allen 3 Zeilen und die anderen 8 sind unterschiedlich kommen aber nicht Doppelt vor.)

1 2 3 4 5 6 7 8 9 10
* * *
* * * * *
* * * *

Also das ist ein Beispiel.

Die Infos in Spalte 1 & 2 sind immer Identisch ( bei den 3 zusammen hängenden zeilen)
Die restlichen sind immer individuell aber kommen niemals doppelt vor kann aber sein das überhaupt keiner ausgefüllt ist..

Ich hoffe das hilft dir weiter.
Bitte warten ..
Mitglied: gogoflash
18.05.2006 um 14:26 Uhr
Hi,

mach es mal etwas konkreter. Du hast jetzt die Tabelle dargestellt. Wie soll es am Ende aussehen.

Etwas plastischer wäre nicht schlecht.


Gruß Miguel
Bitte warten ..
Mitglied: gogoflash
18.05.2006 um 15:15 Uhr
Hi,

jetzt hab ich glaub ich gerafft. Wenn Du nachdem die 3er Gruppen ausgewertet wurden (gehören ja zusammen). Soll eine Aktion durchgeführt werden, dann auslesen der nächsten Dreiergruppen bis zum Ende ?


REM Achtung erste Zeile wird nicht ausgelesen, dort können die Tabelleninfos stehen
set /A "skip=1"

:main
set /A "zahl=0"
REM Beginn der für die 3erGruppen wird mit %Skip verschoben

for /f "skip=%skip% tokens=3,4,5,6,7,8,9,10 delims=;" %%a in (p.csv) do call :sub %%a %%b %%c %%d %%e %%f %%g %%h
:goto :eof

:sub

REM Wenn 3er Gruppe ausgewertet wird eine Aktion durchgeführt.
REM Hier eine Info in die Excel.txt

IF %Zahl%==3 goto :bofif
goto :eofif
:bofif

REM mach Irgendwas
echo 3er Gruppe zuende >> excel.txt
goto :main
:eofif

REM Hochzählen
set /A "Zahl+=1"
set /A "skip=skip+Zahl"

echo %1 >> excel.txt

:eof

Ist in erster Näherung zusammengeschrottet, aber als Denkansatz....


Gruß Miguel
Bitte warten ..
Mitglied: Hummel85
19.05.2006 um 07:05 Uhr
Guten Morgen gogoflash,

Danke für deine Hilfe. War sehr Hilfreich. Nur es funktioniert noch nicht so ganz( ich weiß sollte nur ein Denkansatz sein aber vielleicht hilfst du mir ja weiter).

Da ich bis jetzt noch nicht mit Schleifen gearbeitet habe( konnte mich jetzt davor drücken) weiß ich leider nicht wie ich die Schleife bearbeiten soll um zum gewünschten Ergebnisse zu kommen.

Hier noch ein paar Infos.

Meine p.csv sieht so aus( mit einem Texteditor geöffnet)

"SW
Typ";"SW-
Art";GS1;"GS2/
LS2";LS3;LS4;LS5;LS6;LS7;LS8
3;30;;;ge/bli;;;;;
;;;;;;gn/bli;;;
;;;;;;;;rt/bli;

Was ich daraus brauche ist.

3
30
ge/bli
gn/bli
rt/bli

Meine Textdatei soll so aussehen:

Typ 3
[Signal_1_Art_30]
ge/bli

[Signal_2_Art_30]
gn/bli

[Signal_3_Art_30]
rt/bli


Also Typ(3) ist klar.
Art(30) ist auch klar.
Farbe(rt/bli z.b.) ist denk ich mal auch klar.
Was ich auch noch brauche ist halt Signal.

Was ich vor allem mal brauch ist ein Tutorial wo Schleifen gut beschrieben sind. Wenn mir das noch jemand geben kann ist mein Tag gerettet.
Bitte warten ..
Mitglied: gogoflash
20.05.2006 um 16:11 Uhr
Hi,


erstmal Teilantworten bis am Ende, ein Vorschlag von mir steht.

1) Signal_1 usw werden doch nur hochgezählt oder.

01.
for /L %%i IN (1,1,3) DO echo Signal_%%i >> test.txt
Erzeugt in test.txt

signal_1
signal_2
signal_3

2)

01.
for /F "tokens=1,2 delims=;" %%a in ('find "3" plt.txt') Do set typ=%%a && set art=%%b 
02.
 
03.
echo Typ %typ% >> test.txt	 
04.
for /L %%i IN (1,1,3) DO call :sub %%i 
05.
goto :eof 
06.
:sub   
07.
  echo [Signal_%1_Art_%Art%] >> test.txt 
08.
:eof
erzeugt:
Typ 3
[Signal_1_Art_30]
[Signal_2_Art_30]
[Signal_3_Art_30]


3) Jetzt kommt es:

Innerhalb der Hochzählschleife, wird mit findstr (ge/bli; gn/bli; rt/bli) gesucht. findstr /N gibt die Zeilenzahl an, getrennt mit Doppelpunkt (ZB 5.
Durch das Hochzählen in der For Schleife wird %zahl% definiert. Diese legt fest welche Zeile zu betrachten ist, stimmt diese Zahl mit dem Überein, was findstr gefunden hat, wird entsprechend ge/bli usw ausgegeben. Es funktioniert auch dann noch wenn zb ge/bli doppelt vorkommt.
Die Spaltenzahl ist hier nicht wichtig, da über findstr durchgeschliffen. Das macht die Sache viel einfacher, da wir nicht mehr mit Spalten arbeiten müssen.
findstr /N "ge/bli" plt.txt' gibt mir die Zeilenzahl in der ge/bli vorkommt. Damit nicht die erstbeste ge/bli genommen wird (kann ja mehrmals vorkommen), wird %zahl% benötigt.

01.
for /L %%i IN (1,1,3) DO call :sub %%i 
02.
goto :eof 
03.
:sub   
04.
  echo [Signal_%1_Art_%Art] >> test.txt 
05.
  set /A "zahl=%1+4" 
06.
  for /F "delims=:" %%a in ('findstr /N "ge/bli" plt.txt') Do IF %%a==%zahl% echo ge/bli >> test.txt 
07.
  for /F "delims=:" %%a in ('findstr /N "gn/bli" plt.txt') Do IF %%a==%zahl% echo gn/bli >> test.txt 
08.
  for /F "delims=:" %%a in ('findstr /N "rt/bli" plt.txt') Do IF %%a==%zahl% echo rt/bli >> test.txt 
09.
:eof
4) Alles Zusammen (es kommt noch schlimmer unter 6):

01.
REM ---------------------- Snipp --------------------------------------- 
02.
 
03.
REM Header der Tabelle 
04.
REM Zahl der Zeilen die nicht ausgewertet werden. 
05.
 
06.
set /A "header=4" 
07.
set datei=plt.txt 
08.
set output=test.txt 
09.
 
10.
REM Hochzählvariable 
11.
set /A "zahl=0" 
12.
 
13.
REM TYP und Art bestimmen 
14.
for /F "tokens=1-2 delims=;" %%a in ('find "3" %datei%') Do set typ=%%a && set art=%%b 
15.
echo Typ %typ% >> %output% 
16.
 
17.
REM Signalnummer und Farben reinziehen	 
18.
for /L %%i IN (1,1,3) DO call :sub %%i 
19.
goto :eof 
20.
:sub   
21.
  echo [Signal_%1_Art_%Art%] >> %output% 
22.
  set /A "zahl=%1+%header%" 
23.
 
24.
REM Suchen der einzelnen Farben, Ausgabe der Zeilenzahl und prüfen ob es mit dem 
25.
REM Counter übereinstimmt 
26.
 
27.
  for /F "delims=:" %%a in ('findstr /N "ge/bli" %datei%') Do IF %%a==%zahl% echo ge/bli >> %output% 
28.
  for /F "delims=:" %%a in ('findstr /N "gn/bli" %datei%') Do IF %%a==%zahl% echo gn/bli >> %output% 
29.
  for /F "delims=:" %%a in ('findstr /N "rt/bli" %datei%') Do IF %%a==%zahl% echo rt/bli >> %output% 
30.
:eof 
31.
 
32.
 
33.
REM ---------------------- Snapp --------------------------------------- 
34.
 
Erzeugt:
Typ 3
[Signal_1_Art_30]
ge/bli
[Signal_2_Art_30]
gn/bli
[Signal_3_Art_30]
rt/bli

5) Jetzt die Übelste Variante, die Tabelle enthält mehr Typen (1-3 zb)

Sei die Tabelle in der Form

01.
"SW 
02.
Typ";"SW- 
03.
Art";GS1;"GS2/ 
04.
LS2";LS3;LS4;LS5;LS6;LS7;LS8 
05.
3;32;;;ge/bli;;;;; 
06.
;;;;;;gn/bli;;; 
07.
;;;;;;;;rt/bli; 
08.
1;66;;;gn/bli;;;;; 
09.
;;;;;;gn/bli;;; 
10.
;;;;;;;;rt/bli; 
11.
2;20;;;rt/bli;;;;; 
12.
;;;;;;gn/bli;;; 
13.
;;;;;;;;rt/bli;
dann ergibt sich:

01.
Typ 1  
02.
[Signal_1_Art_66]  
03.
gn/bli  
04.
[Signal_2_Art_66]  
05.
gn/bli  
06.
[Signal_3_Art_66]  
07.
rt/bli  
08.
Typ 2  
09.
[Signal_1_Art_20]  
10.
rt/bli  
11.
[Signal_2_Art_20]  
12.
gn/bli  
13.
[Signal_3_Art_20]  
14.
rt/bli  
15.
Typ 3  
16.
[Signal_1_Art_32]  
17.
ge/bli  
18.
[Signal_2_Art_32]  
19.
gn/bli  
20.
[Signal_3_Art_32]  
21.
rt/bli  
22.
 
6) Entfassung Batch:
- Für einen Haufen Typen egal ob sie exisiteren oder nicht. Sie werden dann nicht ausgegeben.
Dafür %test% Variable definiert und test, ob Typ vorhanden.
more +%heradera% %datei% sorgt, dafür das der Kopf der Tabelle irgnoriert wird.
for /F "tokens=1,2 delims=;" %%a in ('more +%headera% %datei%^|find "%1;"') Do set /A "test=%%a" && set Art=%%b
if not %test%==%1 goto :eff

- Es können mehrere Farbwerte pro Zeile vorkommen (rt/bli;ge/bli)

- Spaltenposition für Farbwerte egal

01.
REM ------------------SCHNIPP -------------------------------- 
02.
REM Header der Tabelle 
03.
set headera=4 
04.
 
05.
REM Dateiinfos 
06.
set datei=plt.txt 
07.
set output=test.txt 
08.
 
09.
REM Gruppierung (hier Dreiergruppen) 
10.
set group=3 
11.
 
12.
REM Anzahl der Typen (Wieviele Typen existieren) 
13.
REM Falls einer oder mehrer nicht exisitieren wird dass im Skript abgefangen. 
14.
set atyp=8 
15.
 
16.
REM Zählen die einzelnen Typen hoch 
17.
 
18.
for /L %%i IN (1,1,%atyp%) DO call :main %%i 
19.
goto :eof 
20.
    :main 
21.
            REM TYP und Art bestimmen      
22.
    for /F "tokens=1,2 delims=;" %%a in ('more +%headera% %datei%^|find "%1;"') Do set /A "test=%%a" && set Art=%%b 
23.
     
24.
            REM Falls Type nicht existiert, deshalb %test% wird die Schleife übersprungen 
25.
    if not %test%==%1 goto :eff 
26.
    echo Typ %1 >> %output% 
27.
 
28.
    for /F "delims=:" %%a in ('more +%headera% %datei%^|findstr /N "%1;"') Do set header=%%a 
29.
 
30.
            REM Signalnummer und Farben reinziehen     
31.
                REM Berücksichtigt wird, dass die Werte in Dreiergruppen vorliegen 
32.
                REM Läßt sich einfach ändern, falls 4er oder uswer Gruppen vorliegen. 
33.
     
34.
        for /L %%c IN (1,1,%group%) DO call :sub %%c 
35.
    goto :eff 
36.
    :sub   
37.
          echo [Signal_%1_Art_%Art%] >> %output% 
38.
                 
39.
                REM Jetzt wird die 3er Gruppe ausgewertet, ab der Stelle, wo der Typ aufgetaucht ist 
40.
                REM Header ist Zeile in der der Typ gefunden wurde 
41.
                REM %1 Element in der 3er Gruppe 
42.
                REM %headera% ist der Kopf der Tabelle. 
43.
                REM %zahl% ist die Zeile in der Gruppe, die uns interessiert 
44.
 
45.
          set /A "zahl=%1+%header%+%headera%-1" 
46.
 
47.
                REM Stimmt die Zeilenzahl von findstr mit %zahl% überein, 
48.
                REM dann haben wir einen Treffer und Farbe wird ausgegeben. 
49.
	   
50.
	  for %%b in (ge/bi gn/bli rt/bli) DO for /F "delims=:" %%a in ('findstr /N "%%b" %datei%') Do IF %%a==%zahl% echo %%b >> %output%         
51.
    :eff 
52.
:eof 
53.
REM ------------------SCHNAPP --------------------------------
Gruß Miguel
Bitte warten ..
Mitglied: Biber
20.05.2006 um 21:01 Uhr
Moin Hummel85 und Miguel,

kann mich hier aufs Mitlesen beschränken - ist alles in guten Händen, denke ich.
Nur als kleine handwerkliche Tipps (zum vorletzten Schnipsel):

Hier ginge es ohne Sub
01.
...:: Jetzt 
02.
for /L %%i IN (1,1,3) DO call :sub %%i 
03.
goto :eof 
04.
:sub  
05.
echo [Signal_%1_Art_%Art] >> test.txt     && rem ein %-Zeichen fehlt hinter %Art 
06.
:eof && Rem  Diese Sprungmarke muss nicht gesetzt werden. Macht M$ für uns.
01.
:: Alternativ 
02.
for /L %%i IN (1,1,3) DO echo [Signal_%%i_Art_%Art%] >> test.txt 
03.
goto :eof
@Hummel85
Kann denn immer nur genau EIN Farbwert pro Zeile auftauchen? Und ist die Spaltenposition unwichtig?

Gruß
Biber
Bitte warten ..
Mitglied: Hummel85
22.05.2006 um 10:13 Uhr
Guten Morgen,

erstmal vielen dank für die Hilfreichen Antworten.

An gogoflash: Werde die Batch im laufe des Tages testen. Vielen dank schon mal.

An Biber: Es kann nur ein Farbwert pro Zeile geben(rt oder gn oder rt/bli [steht für blinkendes rot Signal]). Und die Spalten Position ist genau so wichtig wie die Zeilen Position.

Die Spalte gibt an welchen LS( Lampenschalter) wir benutzen, und die Zeile gibt an welches Signal das ist[ gilt aber nur innerhalb der dreier Gruppe]. Es kann aber auch sein das nur 1 Signal existiert. Dann steht da natürlich nix.

Gruß Hummel

P.S. Ich melde mich im laufe des Tages wegen der Batch.
Bitte warten ..
Mitglied: gogoflash
22.05.2006, aktualisiert 18.10.2012
Hi,

ich bastle gerade an einem Tutorial rum, darin ist die Suche nach Elementen und ausgabe von SPalten und Zeilen enthalten.

http://www.administrator.de/wissen/in-tabellen-rumrechnen-mittels-batch ...

Und ausserdem wäre eine Zuordung von Spaltenzahl und Signalnummer nicht schlecht.


Gruß Miguel
Bitte warten ..
Mitglied: Hummel85
23.05.2006 um 09:05 Uhr
Guten Morgen,

Ja das Tutorial sieht nicht schlecht aus. Werde ich mir mal bei gelegenheit durchlesen.

Und zu dem 2. Punkt

"Und ausserdem wäre eine Zuordung von Spaltenzahl und Signalnummer nicht schlecht."

Wie soll ich das verstehen? Was soll ich dir den jetzt schreiben?
Bitte warten ..
Mitglied: Hummel85
30.05.2006 um 13:17 Uhr
Hallo Miguel,


ich habe gerade deine Batch ausprobiert.
Leider muss ich sagen das sie mich dem Ziel nur ein wenig näher bringt.

So wie ich das gelesen habe Funktioniert diese Batch nur mit den 3 Farben( ge/bli, rt/gli und gn/bli). Und das erweitern auf alle Farben ist nahezu unmöglich weil es nicht nur Farben sein können sondern auch Buchstaben und so.

Doch nach dem Testen der nächste schock. Sobald ich was an der Tabelle (plt.txt) ändere geht nichts mehr. Die Batch erstellt nicht einmal die Test.txt.

Ich habe die Excel Tabelle ein wenig verändert.
Leider habe ich wenig Zeit um die Batch selber anzupassen. Und außerdem sind mir da wieder zu viele schleifen drin womit ich wieder nicht klar komme. Wäre also nett wenn du mir die Batch anpassen kannst.


Inhalt der plt.txt
Typ ;Art;LS1;LS2;LS3;LS4;LS5;LS6;LS7;LS8
2;1;rt;;gn;vi;;;;
;;;rt;;;gn;;;
;;;;;;;vi;;
2;2;rt;;gn;vi;;;D;
;;;rt;;;gn;;;D
;;;;;;;vi;;
2;3;rt;;;vi;;;D;
;;;;;;;;;M
;;;;gn;;;;;


Vielen dank im Voraus.

Gruß Hummel
Bitte warten ..
Mitglied: gogoflash
30.05.2006 um 14:35 Uhr
Hi,

nachdem das Problem immer etwas komplexer wird bzw ständig modifiziert wird,sollten wir uns eine Strategie ausdenken.
Ist nun die letzte plt.txt die Entgültige Fassung?
Wie soll es am Ende aussehen?
Wieso ist jetzt vorne bei "Art" immer das gleiche ?
Jetzt sind auf einmal mehrere Farben in einer Zeile. rt vi D ????

Du solltest deine Fragestellung nicht ständig ändern. Das führt dazu, dass das Skript nicht brachbar ist und eigentlich von Grund auf neu konzipiert werden sollte.

So kann ich auch nicht arbeiten. Sorry.

Aufgabenstellung genauer stellen....

Gruß Miguel
Bitte warten ..
Mitglied: Hummel85
31.05.2006 um 07:05 Uhr
Morgen Miguel,

Also die plt.txt sieht ständig anderes aus.
Aber vom Aufbau an sich ändert sich nichts.
Nur der Inhalt.

Ich Schreibe dir einfach unter die Zeile in der plt.txt was in den einzelnen Dateien stehen soll.
(Rot ist der Inhalt der in der INI Datei stehen soll)
Typ ;Art;LS1;LS2;LS3;LS4;LS5;LS6;LS7;LS8
2;1;rt;;gn;vi;;;;
[Signal_2_art1]
LS1=rt
LS3=gn
LS4=vi

;;;rt;;;gn;;;
[Signal_2_art1]
LS2=rt
LS5=gn

;;;;;;;vi;;
[Signal_2_art1]
LS6=vi

2;2;rt;;gn;vi;;;D;
[Signal_2_art2]
LS1=rt
LS3=gn
LS4=vi
LS7=D

;;;rt;;;gn;;;D
[Signal_2_art2]
LS2=rt
LS5=gn
LS8=D

;;;;;;;vi;;
[Signal_2_art2]
LS6=vi

2;3;rt;;;vi;;;D;
[Signal_2_art3]
LS1=rt
LS4=vi
LS7=D

;;;;;;;;;M
[Signal_2_art3]
LS8=M

;;;;gn;;;;;
[Signal_2_art3]
LS3=gn


Um das Ganze aber noch Komplett zu machen. Brauch ich das Ganze nicht in einer INI Datei sondern in 3.

Typ1.ini:
[Signal_2_art1]
LS1=rt
LS3=gn
LS4=vi

[Signal_2_art2]
LS1=rt
LS3=gn
LS4=vi
LS7=D

[Signal_2_art3]
LS1=rt
LS4=vi
LS7=D

Typ2.ini:
[Signal_2_art1]
LS2=rt
LS5=gn

[Signal_2_art2]
LS2=rt
LS5=gn
LS8=D

[Signal_2_art3]
LS8=M

Typ3.ini:
[Signal_2_art1]
LS6=vi

[Signal_2_art2]
LS6=vi

[Signal_2_art3]
LS3=gn


So zu deiner nächsten Frage. Bei Art Steht nicht immer das gleiche. ich denke mal du meinst bei Typ. Das ist aber nur Zufall.

Leider habe ich auch gemerkt dass ich bei einem Beitrag einen Großen Fehler gemacht habe. Aber jetzt ist es wirklich so wie es bleiben wird.

Ja das mehrere Farben in einer Zeile stehen können habe ich aber gesagt aber innerhalb der dreier Gruppe gibt es nur ein Eintrag pro Spalte. Also Pro LS kann es nur eine Farbe innerhalb einer dreier Gruppe geben. Doppelbelegung gibt es nicht.

Ich hoffe mit diesen Angaben kannst du mehr anfangen.


Und Entschuldige bitte dass ich so viel verändern musste.
Aber ich bekomme auch immer neu Infos. "Ich will das aber lieber so."
Darum habe ich einfach gesagt das es mir egal ist was die wollen ich erstelle mir einfach aus der Excel Tabelle mit einem Makro die Tabelle die ich brauch um die mit der Batch die INI Dateien zu generieren. Darum wird es keine weitere Veränderung der plt.txt geben außer der Inhalt(Farben, Art, Typ). Aber der Aufbau ist immer gleich. Also die Batch darf nicht auf Wörter reagieren sondern auf die Position in der plt.txt.


Danke schon mal im Voraus.
Bitte warten ..
Mitglied: gogoflash
01.06.2006 um 01:14 Uhr
Hi,


ich hab auch nicht so die Zeit eine Vollständige Lösung zu präsentieren.
Aber wir werden uns, dass Ding mal von der anderen Seite betrachten.

Zum Verständnis der Schleifen.

Mal ganz Sprachlich für ein 3 Zeilen Modell.

----------------Sprach Batch ------------
Für jede Zeile (1,2,3) mach folgendes:

Wenn Du in der ersten Zeile bist gehe zu Los1, sonst gehe zu Los2.

LOS1:
Lese von der ersten bis zur letzen Spalte die Werte aus.
Ignoriere unsinnige Werte (Leerzeichen oder keine Zeichen)
Folgende Regeln sind zu beachten:
i) In der Spalte 1 ist das Signal
In der Spalte 2 ist die Art
Diese sollte ich mir merken.
ii) Spalte 3=LS1
Spalte 4=LS2
Allgemein: Für n > 2 gilt Spalte n=LS(n-2)
iii) Typdatei wird durch Zeilennummer definiert.
Zeile 1 = Typ1 usw
iv) Ausspucken von Werten in die Typdatei, sowie die LS Werte untereinander.
ENDE von LOS1

LOS2:
Falls Zeile > 1.
Lese von der 3 bis zur letzen Spalte.
Führe Teile Los.ii) und Los.iii) sowie Los.iv) aus.
Die Werte und Los.i) sind ja schon gelesen worden.
ENDE von LOS2
----------------Sprach Batch ------------


Dieses Modell braucht schon mal 2 Schleifen. Einmal für die Spalten und einmal für die Zeilen.

Ist das so richtig?

Später kann man ja die gesamte Datei damit durchhaun.


Gruß Miguel
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Microsoft Office
Word Dokument (vorausgefüllte Formulare) aus Excel Tabelle generieren (1)

Frage von Server4Alle zum Thema Microsoft Office ...

Microsoft Office
Excel Dateien durchsuchen und Werte einzeln in neue Excel Datei auslesen (1)

Frage von krischanii zum Thema Microsoft Office ...

Datenbanken
Spalte in einer SQL-Tabelle auslesen. Werte durch Tab getrennt! (4)

Frage von Janekr77 zum Thema Datenbanken ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...