Erklärung einfacher If Bedingung mit Boolean Wert (wie komm ich an die Werte?)
Hallo zusammen,
habe ein Programm vorliegen, welches ich gerne erweitern möchte.
Beim Datenimport, möchte ich zwischen drei möglichen Versionen unterscheiden.
Bisher unterscheidet das Programm schon zwischen Standard und wir nennen es mal bJG.
Will noch ein weitere Entscheidung implementieren. (z.B. cJG)
bJG wurde als Bololean Variable deklariert und false initialisiert.
Ich würde gerne nachvollziehen, wodurch sich der Wert der Variablen bJG auf true ändert.
Mal schauen ob das ganze überhaupt durch posten von nur einigen Codezeilen möglich ist. Sonst werde ich noch weitere Informationen bereitstellen.
Die Daten die ankommen sind in der Variablen sText as String gespeichert.
sText enthällt:
ST C7
JG 0 1 4 0 0 0 96
SE AC0N000282 13.0.0 46
DA 2023/11/06 12:43:37 7A
MS TEST 20
LO BB
CH AB
IT 1 31.911 mm SCi 1 {C8;4}32.000 0.100 -0.100 OK 10
EN B3
Die Unterscheidungsmerkmale in dem Inputstring sind: Standard ohne JG in der zweiten Zeile und die dritte Variante wäre identisch wie bJG allerdings enthält die achte Zeile zusätzlich {C } diese würde ich gerne als Unterscheidungsmerkmal verwenden..
Anbei noch eine Codestelle wodurch ich vermute die aktuelle Unterscheidung stattfindet.
Also eigentlich sind es zwei Themen die ineinander greifen .
Ich möchte gerne das aktuelle ein wenig besser verstehen und im Nachgang gerne dritte Unterscheidung implementieren.
Vielen Dank im voraus!
habe ein Programm vorliegen, welches ich gerne erweitern möchte.
Beim Datenimport, möchte ich zwischen drei möglichen Versionen unterscheiden.
Bisher unterscheidet das Programm schon zwischen Standard und wir nennen es mal bJG.
Will noch ein weitere Entscheidung implementieren. (z.B. cJG)
bJG wurde als Bololean Variable deklariert und false initialisiert.
Ich würde gerne nachvollziehen, wodurch sich der Wert der Variablen bJG auf true ändert.
Mal schauen ob das ganze überhaupt durch posten von nur einigen Codezeilen möglich ist. Sonst werde ich noch weitere Informationen bereitstellen.
Die Daten die ankommen sind in der Variablen sText as String gespeichert.
sText enthällt:
ST C7
JG 0 1 4 0 0 0 96
SE AC0N000282 13.0.0 46
DA 2023/11/06 12:43:37 7A
MS TEST 20
LO BB
CH AB
IT 1 31.911 mm SCi 1 {C8;4}32.000 0.100 -0.100 OK 10
EN B3
Die Unterscheidungsmerkmale in dem Inputstring sind: Standard ohne JG in der zweiten Zeile und die dritte Variante wäre identisch wie bJG allerdings enthält die achte Zeile zusätzlich {C } diese würde ich gerne als Unterscheidungsmerkmal verwenden..
Anbei noch eine Codestelle wodurch ich vermute die aktuelle Unterscheidung stattfindet.
Hauptmenü.bJG = IIf(InStr(sText, My.Settings.zBauteilzaehler) > 0, True, False)
If Hauptmenü.bJG Then
Also eigentlich sind es zwei Themen die ineinander greifen .
Ich möchte gerne das aktuelle ein wenig besser verstehen und im Nachgang gerne dritte Unterscheidung implementieren.
Vielen Dank im voraus!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 23788264993
Url: https://administrator.de/contentid/23788264993
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
6 Kommentare
Neuester Kommentar
Moin.
... die Codezeilen, die durch IF deine Variable füllen sind sicher notwendig (in Code-TAGS!)
... und natürlich kannst du ungesehen, nach der ersten IF-Zeile weitere entsprechende einfügen ...
Bleibt aber die Frage, ob unsere berühmt-berüchtigten Poweshell-Skripter da was elleganteres haben ... 🤔
... nach deinem Edit: wo kommt
"My.Settings.zBauteilzaehler" her?
... die Codezeilen, die durch IF deine Variable füllen sind sicher notwendig (in Code-TAGS!)
... und natürlich kannst du ungesehen, nach der ersten IF-Zeile weitere entsprechende einfügen ...
Bleibt aber die Frage, ob unsere berühmt-berüchtigten Poweshell-Skripter da was elleganteres haben ... 🤔
... nach deinem Edit: wo kommt
"My.Settings.zBauteilzaehler" her?
Moin,
bin jetzt nicht so der große (VBA-)Entwickler, aber vielleicht kann ich zumindest zum besseren Verständnis beitragen
Deine Codezeile:
sucht mittels InStr-Funktion in sText nach dem ersten vorkommen von 'JG' - kommt 'JG' im sText vor ist die Bedingung > 0 (erste Position im Suchtext wird zurückgegeben) erfüllt und bJG wird auf TRUE gesetzt, bei = 0 (JG nicht vorhanden) entsprechend auf FALSE.
Siehe:
- IIf Funktion
- InStr Funktion
hat InStr nur zwei Argumente bedeutet das InStr(<Zeichenfolge, die durchsucht wird>,<Zeichenfolge, die gesucht wird>)
Also muss der zBauteilzaehler noch irgendwo anders im Code auf 'JG' gesetzt werden (oder eben nicht). Was beinhaltet denn die Variable value?
Gruß
cykes
bin jetzt nicht so der große (VBA-)Entwickler, aber vielleicht kann ich zumindest zum besseren Verständnis beitragen
Deine Codezeile:
Hauptmenü.bJG = IIf(InStr(sText, My.Settings.zBauteilzaehler) > 0, True, False)
Siehe:
- IIf Funktion
- InStr Funktion
hat InStr nur zwei Argumente bedeutet das InStr(<Zeichenfolge, die durchsucht wird>,<Zeichenfolge, die gesucht wird>)
Also muss der zBauteilzaehler noch irgendwo anders im Code auf 'JG' gesetzt werden (oder eben nicht). Was beinhaltet denn die Variable value?
Gruß
cykes
Strods hat Dir oben schon einen Lösungsvorschlag für Deine Erweiterung geliefert ...
Mit Sicherheit, aber ohne den kompletten Code zu kennen, können wir da schlecht eine Aussage treffen.
Mit Sicherheit, aber ohne den kompletten Code zu kennen, können wir da schlecht eine Aussage treffen.
Value steht so bei allen Properties, wird aber entsprechend immer etwas anderes zugewiesen. (hoffentlich habe ich jetzt nicht totalen Blödsinn geschrieben)
Value beinhaltet vermutlich immer die ersten beiden Buchstaben am Anfag jeder Zeile (also ST, JG, SE ... EN) und weist das einer entsprechenden Variable zu.