Hallo!
Ich habe da ein Problem und absolut keine Ahnung, woran es liegen könnte. Unter Python funktioniert das Programm mit der selben Logik. Ich will folgende Datei Zeile für Zeile einlesen:
Fe-16Cr-2Ni-0.2C
Eisen
Metco 42C
P7C-M
-106+45
95
7
76
5
2.2
1
3.8
0.3
42
26
37
64
200
xxx
xxx
########
Ni-20Cr
Nickel
Metco 43C-NS
P7C-M
-106+45
90
5.7
76
5
2.2
1
3.8
0.3
42
26
37
42
200
xxx
xxx
#######
Ni-5Mo-5.5Al
Nickel
Metco 447 NS
P7C-D
-90+45
90
2.6
34
5
2.2
1
3.8
0.3
42
26
37
32
140
xxx
xxx
######
Ni-5Al
Nickel
Metco 450NS
P7C-M
-90+45
86
3.5
45
5
2.2
1
3.8
0.3
42
26
37
56
180
xxx
xxx
######
Und die Zeilen nacheinander in eine neue Datei schreiben. Das ist das Ergebnis:
Fe-16Cr-2Ni-0.2C
Eisen
Metco 42C
P7C-M
-106
95
7
76
5
2
2
1
3
8
0
3
42
26
37
64
200
xxx
xxx
########
Ni-20Cr
Nickel
Metco 43C-NS
P7C-M
-106
90
5
7
76
5
2
2
1
3
8
0
3
42
26
37
42
200
xxx
xxx
#######
Ni-5Mo-5.5Al
Nickel
Metco 447 NS
P7C-D
-90
90
2
6
34
5
2
2
1
3
8
0
3
42
26
37
32
140
xxx
xxx
######
Ni-5Al
Nickel
Metco 450NS
P7C-M
-90
86
3
5
45
5
2
2
1
3
8
0
3
42
26
37
56
180
xxx
xxx
######
Es werden bei den Zahlen Leerzeichen vorran gestellt und beim 5ten Eintrag der zweite Teil weg gelassen. Des weiteren läuft das Programm beim ersten mal so durch , wie es angedacht ist (ausser die Änderungen der Strings). Bei jedem weiter mal läuft die erste Schleife nur bis zum 17 Eintrag, so als ob 3 unsichtbare Zeilen der Datei vorran gestellt sind. Dies ist der Queltext
'# alte Datei öffnen
pfad = "c:/Python25/" '# anpassen!!
dateiname = "pulver.dat" '#anpassen!!
datei = pfad + dateiname
Open datei For Input As #1 '#alte datei zum auslesen öffnen
'# Auslagerungsdatei öffnen
pfad2 = "c:/Python25/" '# anpassen!!
dateiname2 = "pulver.dat.neu" '#anpassen!!
datei2 = pfad2 + dateiname2
Open datei2 For Output As #2 '#auslagerungsdatei schreiben
a = 1
For absatz = 2 To a '#Zeilen vorm ausgewählten Pulver in Auslagerungsdatei schreiben
For d = 0 To 20 '#alle Attribute des Pulvers übertragen
Input #1, Text
Print #2, Text
Next
Next
For r = 0 To 20 '#überspringen bzw. auslesen der Attribute des zu ändernden Pulvers
Input #1, Text
If (r = 0) Then
pulvertyp = Text
End If
If (r = 1) Then
pulverbasis = Text
End If
If (r = 2) Then
herstellerbezeichnung = Text
End If
If (r = 3) Then
duese = Text
End If
If (r = 4) Then
korngroesse = Text
End If
If (r = 5) Then
wirkungsgrad = Text
End If
If (r = 6) Then
auftragsleistung = Text
End If
If (r = 7) Then
spritzrate = Text
End If
If (r = Then
spotdurchmesser = Text
End If
If (r = 9) Then
sauerstoffdruck = Text
End If
If (r = 10) Then
acetylendruck = Text
End If
If (r = 11) Then
traegergasdruck = Text
End If
If (r = 12) Then
vibratorluftdruck = Text
End If
If (r = 13) Then
sauerstoff = Text
End If
If (r = 14) Then
acetylen = Text
End If
If (r = 15) Then
flussmesser = Text
End If
If (r = 16) Then
mengenflussanzeige = Text
End If
If (r = 17) Then
spritzabstand = Text
End If
If (r = 18) Then
luftduesenkreuzpunkt = Text
End If
If (r = 19) Then '#letzte variable
druckluftdueseneinheit = Text
End If
Next
If (pulvertyp = "") Then
pulvertyp = "xxx"
End If
If (pulverbasis = "") Then
pulverbasis = "xxx"
End If
If (herstellerbezeichnung = "") Then
herstellerbezeichnung = "xxx"
End If
If (duese = "") Then
duese = "xxx"
End If
If (korngroesse = "") Then
korngroesse = "xxx"
End If
If (wirkungsgrad = "") Then
wirkungsgrad = "xxx"
End If
If (auftragsleistung = "") Then
auftragsleistung = "xxx"
End If
If (spritzrate = "") Then
spritzrate = "xxx"
End If
If (spotdurchmesser = "") Then
spotdurchmesser = "xxx"
End If
If (sauerstoffdruck = "") Then
sauerstoffdruck = "xxx"
End If
If (acetylendruck = "") Then
acetylendruck = "xxx"
End If
If (traegergasdruck = "") Then
traegergasdruck = "xxx"
End If
If (vibratorluftdruck = "") Then
vibratorluftdruck = "xxx"
End If
If (sauerstoff = "") Then
sauerstoff = "xxx"
End If
If (acetylen = "") Then
acetylen = "xxx"
End If
If (flussmesser = "") Then
flussmesser = "xxx"
End If
If (mengenflussanzeige = "") Then
mengenflussanzeige = "xxx"
End If
If (spritzabstand = "") Then
spritzabstand = "xxx"
End If
If (luftduesenkreuzpunkt = "") Then
luftduesenkreuzpunkt = "xxx"
End If
If (druckluftdueseneinheit = "") Then
druckluftdueseneinheit = "xxx"
End If
'#, durch . ersetzen
pulvertyp = Replace(pulvertyp, ",", ".")
pulverbasis = Replace(pulverbasis, ",", ".")
herstellerbezeichnung = Replace(herstellerbezeichnung, ",", ".")
duese = Replace(duese, ",", ".")
korngroesse = Replace(korngroesse, ",", ".")
wirkungsgrad = Replace(wirkungsgrad, ",", ".")
auftragsleistung = Replace(auftragsleistung, ",", ".")
spritzrate = Replace(spritzrate, ",", ".")
spotdurchmesser = Replace(spotdurchmesser, ",", ".")
sauerstoffdruck = Replace(sauerstoffdruck, ",", ".")
acetylendruck = Replace(acetylendruck, ",", ".")
traegergasdruck = Replace(traegergasdruck, ",", ".")
vibratorluftdruck = Replace(vibratorluftdruck, ",", ".")
sauerstoff = Replace(sauerstoff, ",", ".")
acetylen = Replace(acetylen, ",", ".")
flussmesser = Replace(flussmesser, ",", ".")
mengenflussanzeige = Replace(mengenflussanzeige, ",", ".")
spritzabstand = Replace(spritzabstand, ",", ".")
luftduesenkreuzpunkt = Replace(luftduesenkreuzpunkt, ",", ".")
druckluftdueseneinheit = Replace(druckluftdueseneinheit, ",", ".")
'# Eingabe in Datei schreiben
'Print #1, pulvertyp
'Print #1, pulverbasis
'Print #1, herstellerbezeichnung
'Print #1, duese
'Print #1, korngroesse
'Print #1, wirkungsgrad
'Print #1, auftragsleistung
'Print #1, spritzrate
'Print #1, spotdurchmesser
'Print #1, sauerstoffdruck
'Print #1, acetylendruck
'Print #1, traegergasdruck
'Print #1, vibratorluftdruck
'Print #1, sauerstoff
'Print #1, acetylen
'Print #1, flussmesser
'Print #1, mengenflussanzeige
'Print #1, spritzabstand
'Print #1, luftduesenkreuzpunkt
'Print #1, druckluftdueseneinheit
'print '1, "######"
While Not EOF(1) '#restliche dateien schreiben
Input #1, Text 'Zeile in aus original in Variable speichern
Print #2, Text 'zeile in auslagerungsdatei Datei speichern
Wend
Close #1
Close #2
Kill (datei) '#originaldatei löschen
Name datei2 As datei '#auslagerungsdatei in datei umbenennen
End Sub
Hat jemand ne Idee? Danke für eure Hilfe
Ich habe da ein Problem und absolut keine Ahnung, woran es liegen könnte. Unter Python funktioniert das Programm mit der selben Logik. Ich will folgende Datei Zeile für Zeile einlesen:
Fe-16Cr-2Ni-0.2C
Eisen
Metco 42C
P7C-M
-106+45
95
7
76
5
2.2
1
3.8
0.3
42
26
37
64
200
xxx
xxx
########
Ni-20Cr
Nickel
Metco 43C-NS
P7C-M
-106+45
90
5.7
76
5
2.2
1
3.8
0.3
42
26
37
42
200
xxx
xxx
#######
Ni-5Mo-5.5Al
Nickel
Metco 447 NS
P7C-D
-90+45
90
2.6
34
5
2.2
1
3.8
0.3
42
26
37
32
140
xxx
xxx
######
Ni-5Al
Nickel
Metco 450NS
P7C-M
-90+45
86
3.5
45
5
2.2
1
3.8
0.3
42
26
37
56
180
xxx
xxx
######
Und die Zeilen nacheinander in eine neue Datei schreiben. Das ist das Ergebnis:
Fe-16Cr-2Ni-0.2C
Eisen
Metco 42C
P7C-M
-106
95
7
76
5
2
2
1
3
8
0
3
42
26
37
64
200
xxx
xxx
########
Ni-20Cr
Nickel
Metco 43C-NS
P7C-M
-106
90
5
7
76
5
2
2
1
3
8
0
3
42
26
37
42
200
xxx
xxx
#######
Ni-5Mo-5.5Al
Nickel
Metco 447 NS
P7C-D
-90
90
2
6
34
5
2
2
1
3
8
0
3
42
26
37
32
140
xxx
xxx
######
Ni-5Al
Nickel
Metco 450NS
P7C-M
-90
86
3
5
45
5
2
2
1
3
8
0
3
42
26
37
56
180
xxx
xxx
######
Es werden bei den Zahlen Leerzeichen vorran gestellt und beim 5ten Eintrag der zweite Teil weg gelassen. Des weiteren läuft das Programm beim ersten mal so durch , wie es angedacht ist (ausser die Änderungen der Strings). Bei jedem weiter mal läuft die erste Schleife nur bis zum 17 Eintrag, so als ob 3 unsichtbare Zeilen der Datei vorran gestellt sind. Dies ist der Queltext
'# alte Datei öffnen
pfad = "c:/Python25/" '# anpassen!!
dateiname = "pulver.dat" '#anpassen!!
datei = pfad + dateiname
Open datei For Input As #1 '#alte datei zum auslesen öffnen
'# Auslagerungsdatei öffnen
pfad2 = "c:/Python25/" '# anpassen!!
dateiname2 = "pulver.dat.neu" '#anpassen!!
datei2 = pfad2 + dateiname2
Open datei2 For Output As #2 '#auslagerungsdatei schreiben
a = 1
For absatz = 2 To a '#Zeilen vorm ausgewählten Pulver in Auslagerungsdatei schreiben
For d = 0 To 20 '#alle Attribute des Pulvers übertragen
Input #1, Text
Print #2, Text
Next
Next
For r = 0 To 20 '#überspringen bzw. auslesen der Attribute des zu ändernden Pulvers
Input #1, Text
If (r = 0) Then
pulvertyp = Text
End If
If (r = 1) Then
pulverbasis = Text
End If
If (r = 2) Then
herstellerbezeichnung = Text
End If
If (r = 3) Then
duese = Text
End If
If (r = 4) Then
korngroesse = Text
End If
If (r = 5) Then
wirkungsgrad = Text
End If
If (r = 6) Then
auftragsleistung = Text
End If
If (r = 7) Then
spritzrate = Text
End If
If (r = Then
spotdurchmesser = Text
End If
If (r = 9) Then
sauerstoffdruck = Text
End If
If (r = 10) Then
acetylendruck = Text
End If
If (r = 11) Then
traegergasdruck = Text
End If
If (r = 12) Then
vibratorluftdruck = Text
End If
If (r = 13) Then
sauerstoff = Text
End If
If (r = 14) Then
acetylen = Text
End If
If (r = 15) Then
flussmesser = Text
End If
If (r = 16) Then
mengenflussanzeige = Text
End If
If (r = 17) Then
spritzabstand = Text
End If
If (r = 18) Then
luftduesenkreuzpunkt = Text
End If
If (r = 19) Then '#letzte variable
druckluftdueseneinheit = Text
End If
Next
If (pulvertyp = "") Then
pulvertyp = "xxx"
End If
If (pulverbasis = "") Then
pulverbasis = "xxx"
End If
If (herstellerbezeichnung = "") Then
herstellerbezeichnung = "xxx"
End If
If (duese = "") Then
duese = "xxx"
End If
If (korngroesse = "") Then
korngroesse = "xxx"
End If
If (wirkungsgrad = "") Then
wirkungsgrad = "xxx"
End If
If (auftragsleistung = "") Then
auftragsleistung = "xxx"
End If
If (spritzrate = "") Then
spritzrate = "xxx"
End If
If (spotdurchmesser = "") Then
spotdurchmesser = "xxx"
End If
If (sauerstoffdruck = "") Then
sauerstoffdruck = "xxx"
End If
If (acetylendruck = "") Then
acetylendruck = "xxx"
End If
If (traegergasdruck = "") Then
traegergasdruck = "xxx"
End If
If (vibratorluftdruck = "") Then
vibratorluftdruck = "xxx"
End If
If (sauerstoff = "") Then
sauerstoff = "xxx"
End If
If (acetylen = "") Then
acetylen = "xxx"
End If
If (flussmesser = "") Then
flussmesser = "xxx"
End If
If (mengenflussanzeige = "") Then
mengenflussanzeige = "xxx"
End If
If (spritzabstand = "") Then
spritzabstand = "xxx"
End If
If (luftduesenkreuzpunkt = "") Then
luftduesenkreuzpunkt = "xxx"
End If
If (druckluftdueseneinheit = "") Then
druckluftdueseneinheit = "xxx"
End If
'#, durch . ersetzen
pulvertyp = Replace(pulvertyp, ",", ".")
pulverbasis = Replace(pulverbasis, ",", ".")
herstellerbezeichnung = Replace(herstellerbezeichnung, ",", ".")
duese = Replace(duese, ",", ".")
korngroesse = Replace(korngroesse, ",", ".")
wirkungsgrad = Replace(wirkungsgrad, ",", ".")
auftragsleistung = Replace(auftragsleistung, ",", ".")
spritzrate = Replace(spritzrate, ",", ".")
spotdurchmesser = Replace(spotdurchmesser, ",", ".")
sauerstoffdruck = Replace(sauerstoffdruck, ",", ".")
acetylendruck = Replace(acetylendruck, ",", ".")
traegergasdruck = Replace(traegergasdruck, ",", ".")
vibratorluftdruck = Replace(vibratorluftdruck, ",", ".")
sauerstoff = Replace(sauerstoff, ",", ".")
acetylen = Replace(acetylen, ",", ".")
flussmesser = Replace(flussmesser, ",", ".")
mengenflussanzeige = Replace(mengenflussanzeige, ",", ".")
spritzabstand = Replace(spritzabstand, ",", ".")
luftduesenkreuzpunkt = Replace(luftduesenkreuzpunkt, ",", ".")
druckluftdueseneinheit = Replace(druckluftdueseneinheit, ",", ".")
'# Eingabe in Datei schreiben
'Print #1, pulvertyp
'Print #1, pulverbasis
'Print #1, herstellerbezeichnung
'Print #1, duese
'Print #1, korngroesse
'Print #1, wirkungsgrad
'Print #1, auftragsleistung
'Print #1, spritzrate
'Print #1, spotdurchmesser
'Print #1, sauerstoffdruck
'Print #1, acetylendruck
'Print #1, traegergasdruck
'Print #1, vibratorluftdruck
'Print #1, sauerstoff
'Print #1, acetylen
'Print #1, flussmesser
'Print #1, mengenflussanzeige
'Print #1, spritzabstand
'Print #1, luftduesenkreuzpunkt
'Print #1, druckluftdueseneinheit
'print '1, "######"
While Not EOF(1) '#restliche dateien schreiben
Input #1, Text 'Zeile in aus original in Variable speichern
Print #2, Text 'zeile in auslagerungsdatei Datei speichern
Wend
Close #1
Close #2
Kill (datei) '#originaldatei löschen
Name datei2 As datei '#auslagerungsdatei in datei umbenennen
End Sub
Hat jemand ne Idee? Danke für eure Hilfe