Text beim Compilieren ersetzen

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Text beim Compilieren ersetzen

      Hallo zusammen,

      ich habe eine Frage. Ist es möglich beim Compilieren einen Text im Programm durch eine Constante zu ersetzen? Bei Zahlen funktioniert das ja Problemlos. Ich hatte mir das so vorgestellt:

      Source Code

      1. Const Abfrage1 = "Eingang1"
      2. .
      3. .
      4. If Abfrage1 = 1 then
      5. 'Mach was
      6. End if
      Sodass nun in der IF Bedingung die Variable bzw der "Eingang1" eingesetzt wird. Geht das irgendwie? Mir wirft der Compiler einen Fehler aus

      Gruß
      Felix
    • djmsc hat das richtig beantwortet, wobei dein Quellcode fehlerhaft ist, sonst hätte der Compiler nicht gemeckert (obwohl es nicht das macht, was du beabsichtigst und djmsc richtig beantwortet hat)

      Du weist der Konstanten Abfrage1 einen String zu und führst nachher eine Abfrage mit Vergleich auf eine Zahl aus. (Äpfel und Birnen...)
      Code first, think later - Natural programmer :D
    • Felix H. wrote:

      Ist es möglich beim Compilieren einen Text im Programm durch eine Constante zu ersetzen?
      Ja ein Stück weit geht das.
      In Deinem Beispiel macht es aber keinen Sinn "Eingabe1" = 1 zu vergleichen.
      Weil hier eine Stringkonstante mit einem Zahlenliteral vergleichen wird.

      Du kannst aber so etwas machen.

      BASCOM Source Code

      1. Const Abfrage1 = "Eingang1"
      2. Dim Wert as String * 20
      3. Wert = "Test"
      4. If Wert = Abfrage1 then
      5. Print "Stimmt!"
      6. Else
      7. Print "Stimmt nicht"
      8. End If

      Du kannst den konstanten String (Abfrage1) mit einer Stringvariable vergleichen.

      Oder willst du vielleicht nur einen Pin abfragen und dafür einen Alias angeben?

      BASCOM Source Code

      1. Abfrage1 Alias PinB.1
      2. If Abfrage1 = 1 then
      3. Print "Pin ist High"
      4. Else
      5. Print "Pin ist Low"
      6. End If
      Das geht natürlich auch.
    • Felix H. wrote:

      Daher kann ich auf Eingang1 = 0 abfragen.
      Ja aber nicht auf "Eingang1" =0

      Felix H. wrote:

      OK das macht so das Programm komplizierter.
      Komplizierter als eine Konstante die ein Alias enthält? Vielleicht bescheibst Du mal näher was vereinfacht werden soll.

      Felix H. wrote:

      Variable "Eingang1" mittels Alias auf einem Eingang liegt.
      Ein Alias ist keine Variable sondern nur ein anderer Name für einen Pin. Der Compiler ersetzt es überall wo es vorkommt mit dem PIn.