Strings werden ungewollt verändert

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Strings werden ungewollt verändert

    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 = 8) 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