If Abfrage Problem Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

DerDa
Posts: 4
Joined: 10 Aug 2019, 16:52

If Abfrage Problem

10 Aug 2019, 17:14

Hallo Community,
ich find das AHK eigentlich ganz interessant denn bisher arbeitete ich nur mit Visual Studio.

Nun aber zu meinen Problem:
Es geht um eine einfach if Abfrage.

Code: Select all

msgbox %Akt_Ort%    ;Ergebniss 4
if (Akt_Ort = 4)
{                                                               
	OrtPosX := 689
	OrtPosY := 341
       MsgBox Hier bei 4
}
Diese Abfrage wird nicht ausgeführt - warum auch immer.

Hingegen aus einem Testbeispiel da funktioniert es:

Code: Select all

A := 4
if (A = 4)
{
	OrtPosX := 689
	OrtPosY := 341
       MsgBox Hier bei 4
}

Was ist im oberen Falsch?

Danke
gregster
Posts: 9001
Joined: 30 Sep 2013, 06:48

Re: If Abfrage Problem

10 Aug 2019, 17:25

Willkommen im Forum!
DerDa wrote:
10 Aug 2019, 17:14
Was ist im oberen Falsch?
Nichts. Wenn Akt_Ort wirklich 4 ist, sollte es funktionieren.

Woher kommt der Wert für diese Variable hier ?
Wie wird 4 zugewiesen? Das sehen wir nicht, und nur da kann eigentlich das Problem liegen.
DerDa
Posts: 4
Joined: 10 Aug 2019, 16:52

Re: If Abfrage Problem

10 Aug 2019, 17:37

Hallöchen,

hier mal der gesamte Cod bis zu der Stelle.

Code: Select all

SetWorkingDir %A_ScriptDir%

global WinPosX := 0                                                             ; AUFLÖSUNG - X
global WinPosY := 0                                                             ; AUFLÖSUNG - Y
global WZ1 := 1200                                                              ; WARTEZEIT IN MILLISEKUNDEN

FileRead, LoadedText, EVE_0001_M01.DAT
INHALT := StrSplit(LoadedText, "`n")
WinPosX := % INHALT[1]                                                          ;280   PC-DESKTOP
WinPosY := % INHALT[2]                                                          ;183   PC-DESKTOP
Akt_BNr := % INHALT[3]
Akt_Ort := % INHALT[4]


msgbox %WinPosX%%WinPosY%%Akt_Ort%    ;Auch alle Wert I.O.


;KOORDINTEN : ERMITTELN
msgbox %Akt_Ort%
if (Akt_Ort = 4)
{                                                               
	OrtPosX := 689
	OrtPosY := 341
    MsgBox Hier bei 4
}
msgbox %OrtPosX%
LG Heiko
gregster
Posts: 9001
Joined: 30 Sep 2013, 06:48

Re: If Abfrage Problem

10 Aug 2019, 18:06

Tja, ich vermute, es liegt an den Zeilenumbrüchen in der .DAT-Datei. Da gibt es ja bekanntlich verschiedene Standards und oft, gerade in Windows, hat man `r`n am Ende jeder Zeile (carriage return + newline); ein verbleibendes `r kann einem da schon mal Probleme bereiten.

Daher würde ich es mal mit INHALT := StrSplit(LoadedText, "`n", "`r") versuchen, um ggf. vorhandene carriage returns auch zu entfernen.


Wenn das auch nicht funktioniert, einfach mal INHALT[4] in die Zwischenablage kopieren und sich hier ansehen, ob andere unsichtbare Zeichen im Code vorhanden sind, die man ggf. noch entfernen müsste:
https://www.soscisurvey.de/tools/view-chars.php

Code: Select all

FileRead, LoadedText, EVE_0001_M01.DAT

INHALT := StrSplit(LoadedText, "`n", "`r")
WinPosX := INHALT[1]                                                          ;280   PC-DESKTOP
WinPosY := INHALT[2]                                                          ;183   PC-DESKTOP
Akt_BNr := INHALT[3]
Akt_Ort := INHALT[4]

clipboard := INHALT[4]		; Zwishcenablage wird mit INHALT[4] befüllt
Die %s sind hier redundant - daher habe ich sie weggelassen. := sorgt schon dafür, dass es sich um einen Ausdruck (expression) handelt.
DerDa
Posts: 4
Joined: 10 Aug 2019, 16:52

Re: If Abfrage Problem  Topic is solved

10 Aug 2019, 18:55

Hi, gregster
Du hast richtig vermutet.
Mit StrSplit(LoadedText, "`n", "`r") hat sich das Problem gelöst.

Vielen Dank für deine hilfe

LG Heiko

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 67 guests