Wert einer Variable geht verloren

PEASANT KING

Commander
Registriert
Okt. 2008
Beiträge
2.397
Guten Morgen,

ich habe ein unerklärliches Phänomen. In meinem Code werden zwei Variablen gesetzt in einer Schleife und an eine Methode übergeben.
In der Schleife sind beide Variablen gefüllt, allerdings in der Methode später, fehlt der Wert in der Variable $readerValue, der Wert in $customerValue ist vorhanden.

Code:
    while($rowCount) {
        $customerValue = $Sheet.Cells.Item($row,$customerColumn).Text
        $readerValue = $Sheet.Cells.Item($row,$readerColumn).Text
       
        CalculateCoordinates -customerValue $customerValue -readerValue $readerValue
   }

Die Werte werden aus zwei Spalten in Excel gelesen und auch in der While-Schleife ausgegeben, nur bei der Übergabe an die Methode geht die zweite Variable verloren.

Woran liegt das? Ich kann mir das nicht erklären.

Nachtrag:

Ich sollte wohl erwähnen das es sich um Powershell handelt ...
 
Zuletzt bearbeitet:
ich weis jetzt nicht welche sprache das ist und was CalculateCoordinates macht aber ev muß der ausgabewert übergeben weren (return)
Code:
$CalculatedCoordinates = array()

while($rowCount) {
        $customerValue = $Sheet.Cells.Item($row,$customerColumn).Text
        $readerValue = $Sheet.Cells.Item($row,$readerColumn).Text
    
        $CalculatedCoordinates.push(CalculateCoordinates -customerValue $customerValue -readerValue $readerValue)
   }

print $CalculatedCoordinates
 
Liegt evtl hier ran: Lexical Scope
Ist das VBA? Hab da keine Ahnung, aber klingt danach, dass call by reference gemacht wird, die ursächliche variable aus dem scope geht und dann alle referenzen darauf invalid bzw. nil werden. $customerValue ist womöglich irgendwo weiter oben im scope noch deklariert.
 
Probier doch mal aus, die Reihenfolge der Parameter rumzudrehen und schau, ob dann immer noch nur customerValue richtig durchkommt. Wennn dann auf magische Weise nur noch readerValue korrekt durchkommt, muss man hier eventuell (die Syntax für Methodenaufrufe ist mir fremd) die Parameter noch irgendwie in Klammern oder in " " setzen, weil in den Strings Leerzeichen enthalten sind/sein können oder sowas?

Nachtrag: Also hier https://docs.microsoft.com/en-us/of...g-started/calling-sub-and-function-procedures sehe ich bspw. VBA Methodenaufrufe in einem ähnlichen Stil wie bei dir, aber dort sind Parameter bei der Syntax ohne Klammern zumindest durch ein Komma getrennt.
 
Zuletzt bearbeitet:
Danke hat sich erledigt, nach dem ich VSCode geschloßen hatte und neu geöffnet habe, geht es plötzlich ....

Es handelt sich übrigens um Powershell
 
Zurück
Oben