Brauche Hilfe muss aus einem text feil wie der (
2 AI 11ov 16 fg
Elozolohnung Eingang
E 1: Analog Eingang 5.01 V
E 2: Analog Eingang 5.01 V) die letzen zwei Zeilen auslesen
und mit den vorgegebenen werten im Programm
vergleiche
Brauche Hilfe muss aus einem text feil wie der (
2 AI 11ov 16 fg
Elozolohnung Eingang
E 1: Analog Eingang 5.01 V
E 2: Analog Eingang 5.01 V) die letzen zwei Zeilen auslesen
und mit den vorgegebenen werten im Programm
vergleiche
Und was verstehst Du an FileReadLine nicht?
danke oskar aber er öffnet mit den file nicht ich versuhe es so
$file = FileOpen("foto1.txt", 0)
If $file = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf
FileClose($file)
$nOffset = 1
und wenn es nicht öffne kann dann kann es nicht lesen oder?????
Ich versuche mal aus Deinem Geschreibsel etwas herauszulesen...
Wenn die Datei nicht geöffnet wird, dann liegt sie vielleicht nicht im selben Verzeichnis wie das Script?!
Falls dem so ist, solltest Du bei FileOpen den Pfad zu der Datei mit angeben.
Außerdem: In Deinem Script gibt es gar kein FileReadLine().
danke eslag an dem pfad ich bin ein bla
und wie kann ich die zahl 5.01v mit der zahl was ich im vorgebe vergleichen
Meine Glaskugel ist gerade beim Polierer (war schon ganz schön abgenutzt).
Beschreibe Dein Problem genauer:
- Was steht in der Datei (am besten Datei posten)?
- Was kann dort noch alles drinstehen?
- Befinden sich die Werte immer in der gleichen Zeile? Immer hinter/vor einem Schlüsselwort?
- Was sind das für Vorgaben, die Du machst?
- Mit wie vielen Vorgaben soll der Wert verglichen werden?
- Wie und wo sind diese Vorgaben gespeichert?
- Was soll nach dem Vergleich geschehen?
- Wo ist Dein bisheriges Script?
Immer dran denken: Wir können keine Gedanken lesen!
hm Meine Glaskugel sagt oskar hat recht zu viele fragen
es soll wirklich nur die letzten zeilen einlesen und mit der zahlen die ich im vorgbe vergleichen plüs minus 10 prozent abweichung . von den letzten zeilen brauche ich nur 5.01 v und muss die vergleichen mit vorgaben die wehre 5.00v. und er soll das automatisch machen . zum schluss gib er in der msg box war alles ok oder nicht?
Ich bin kurz vorm aufgeben...
Also...letzter Versuch: Bitte gehe meine obige Fragenliste Punkt für Punkt durch und versuche sie, so gut es geht, zu beantworten.
#include <Array.au3>
#include <String.au3>
_FileReadToArray("datei.txt",$file);hier dein "Feil" eintragen
$eins=_StringBetween($file[Ubound($file)-2],"Eingang "," V")
$zwei=_StringBetween($file[Ubound($file)-1],"Eingang "," V")
Msgbox(64,"Ergebnis",$eins[0] & @CRLF & $zwei[0])
Kanns nicht testen, hab grad keinen PC hier im UK.
Das war auswendig
Edit:edit.
_Stringbetween gibt ein Array zurück
Stimmt ja..
Thx
Danke für so viel gedult
In der datei steht das drin(
2 AI 11ov 16 fg
Elozolohnung Elngang
E 1: Analog Elngang 5.01 V
E 2: Analog Elngang 5.01 V
) und ich muss nur die letzte 2 zeile vergleichen das sind die 5.01v . das muss ich mit der 5 plüs minus 10% abweichung dich im vorgebe vergleichen es soll mit zwei werten vegleichen werden. nach dem vergleich soll ein ausgabe folgen über msg box folgen das die werte schtimmen. skript ist hier{
#include <GUIConstants.au3>
#include <StaticConstants.au3>
#include <ChangeResolution.au3>
#include <Array.au3>
#include <String.au3>
Opt("WinWaitDelay", 100)
Opt("WinTitleMatchMode", 4)
Opt("WinDetectHiddenText", 1)
Opt("MouseCoordMode", 0)
Opt("CaretCoordMode", 0)
$iWidth = 1280
$iHeight = 1024
$iBitsPP = 32
$iRefreshRate = 60
Dim $fehlerindex = 0
dim $Summefehler = 0
$vRes = _ChangeScreenRes($iWidth, $iHeight, $iBitsPP, $iRefreshRate)
If @error Then
MsgBox(262160, "ERROR", "Unable to change screen - check parameters")
EndIf
Sleep(1000)
$zurueck = MsgBox(1,"", "Bevor sie das Programm starten bitte die Verbindung überprüfen")
If $zurueck = 1 Then
Run("C:\Programme\WAGO Software\WAGO-IO-Check 3\IOCheck3.exe")
Sleep(4000)
WinMove("Knoten1 - WAGO-I/O-Check 3", "", 100, 100, 1024, 768)
Sleep(3000)
Send("{F8}")
Send("{Tab}")
Send("{Tab}")
Send("{Tab}")
Send("{Tab}")
Send("{Tab}")
Send("{Tab}")
;Kommunikation schneiet stehlen Auswahl
;Sleep(1000)
;Send("{down}")
;Send("{down}")
Sleep(2000)
Send("{Enter}")
Sleep(2000)
Send("{F5}")
Sleep(2000)
Send("{F6}")
Sleep(2000)
; Im unteren abschnitt von WinWait bis sleep(2000) wird per maus klick das Navi Fenster aktiviert und pos Fenster ausgewählt.
WinWait("Knoten1 - WAGO-I/O-Check 3","Navigation")
If Not WinActive("Knoten1 - WAGO-I/O-Check 3","Navigation") Then WinActivate("Knoten1 - WAGO-I/O-Check 3","Navigation")
WinWaitActive("Knoten1 - WAGO-I/O-Check 3","Navigation")
MouseMove(104,257)
MouseDown("left")
MouseUp("left")
Sleep(1000)
Send("{down}")
Send("{CTRLDOWN}{SHIFTDOWN}v{SHIFTUP}{CTRLUP}")
Sleep(2000)
;Pos Fenster Aktivierung
WinWait("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION") Then WinActivate("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
Send("{CTRLDOWN}{RIGHT}{CTRLUP}")
Send("{CTRLDOWN}{SHIFTDOWN}v{SHIFTUP}{CTRLUP}")
Sleep(2000)
;Pos Fenster verschibung
WinWait("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION") Then WinActivate("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
MouseMove(82,10)
MouseDown("left")
MouseMove(247,9)
MouseUp("left")
Sleep(2000)
;Wird Fenster ausgewählt
WinWait("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION") Then WinActivate("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
MouseMove(171,84)
MouseDown("left")
MouseUp("left")
Sleep(3000)
;Wird Fenster ausgewählt und Ausgenge gesetzt
WinWait("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION") Then WinActivate("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION") Then WinActivate("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
Send("{CTRLDOWN}{LEFT}{CTRLUP}")
Sleep(2000)
MouseMove(150, 85)
Sleep(2000)
$var1 = PixelGetColor( 656 , 484)
Sleep(1000)
If $var1 = 0x00ff00 Then
$fehlerindex = 0
ElseIf $var1 < 0x00ff00 Or $var1 > 0x00ff00 Then
$Summefehler = $Summefehler+1
EndIf
Sleep(3000)
;springt zwieschen 0750-04xx und 07400-05xx . setzt die elede
If Not WinActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION") Then WinActivate("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
Send("{CTRLDOWN}{RIGHT}{CTRLUP}")
Sleep(1000)
WinWait("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION") Then WinActivate("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
Sleep(1000)
Send("{TAB}")
Sleep(1000)
Send("{CTRLDOWN}{LEFT}{CTRLUP}")
Sleep(1000)
WinWait("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION") Then WinActivate("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
MouseMove(150, 110)
Sleep(1000)
Send("{CTRLDOWN}{RIGHT}{CTRLUP}")
Sleep(2000)
$var2 = PixelGetColor( 656 , 509 )
Sleep(1000)
If $var2 = 0x00ff00 Then
$fehlerindex=0
ElseIf $var2 < 0x00ff00 Or $var2 > 0x00ff00 Then
$Summefehler = $Summefehler+1
EndIf
Sleep(2000)
;springt zwieschen 0750-04xx und 07400-05xx . setzt die elede
WinWait("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION") Then WinActivate("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
Sleep(1000)
Send("{TAB}")
Sleep(1000)
Send("{CTRLDOWN}{LEFT}{CTRLUP}")
Sleep(1000)
WinWait("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION") Then WinActivate("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
MouseMove(150,135)
Sleep(1000)
Send("{CTRLDOWN}{RIGHT}{CTRLUP}")
Sleep(2000)
$var3 = PixelGetColor( 656 , 534 )
Sleep(1000)
If $var3 = 0x00ff00 Then
$fehlerindex=0
ElseIf $var3 < 0x00ff00 Or $var3 > 0x00ff00 Then
$Summefehler = $Summefehler+1
EndIf
Sleep(2000)
;springt zwieschen 0750-04xx und 07400-05xx . setzt die elede
WinWait("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION") Then WinActivate("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
Sleep(1000)
Send("{TAB}")
Sleep(1000)
Send("{CTRLDOWN}{LEFT}{CTRLUP}")
Sleep(1000)
WinWait("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION") Then WinActivate("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
MouseMove(150, 165)
Sleep(2000)
$var4 = PixelGetColor( 656 , 558 )
Sleep(1000)
If $var4 = 0x00ff00 Then
$fehlerindex = 0
ElseIf $var4 < 0x00ff00 Or $var4 > 0x00ff00 Then
$Summefehler = $Summefehler+1
EndIf
Sleep(2000)
; gibt die fehler aus
If $Summefehler > 0 Then
MsgBox(0," Überprüfung von digital Klemme ergab fehle = :", $Summefehler)
ElseIf $Summefehler = 0 Then
MsgBox(0," Überprüfung von digital Klemme ergab fehle = :" ,$fehlerindex)
EndIf
;digitale klemmen auswertung ende
;analoge anfang
Sleep(2000)
WinWait("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION") Then WinActivate("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.1: 0750-04xx"," IDC_DESCRIPTION")
MouseMove(194,12)
MouseDown("left")
MouseUp("left")
Send("{ESC}")
Send("{ESC}")
Sleep(2000)
WinWait("Knoten1 - WAGO-I/O-Check 3","Navigation")
If Not WinActive("Knoten1 - WAGO-I/O-Check 3","Navigation") Then WinActivate("Knoten1 - WAGO-I/O-Check 3","Navigation")
WinWaitActive("Knoten1 - WAGO-I/O-Check 3","Navigation")
Send("{CTRLDOWN}{RIGHT}{CTRLUP}")
Sleep(2000)
WinWait("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
If Not WinActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION") Then WinActivate("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
WinWaitActive("Pos.2: 0750-05xx"," IDC_DESCRIPTION")
MouseMove(194,12)
MouseDown("left")
MouseUp("left")
Send("{ESC}")
Sleep(2000)
WinWait("Knoten1 - WAGO-I/O-Check 3","Navigation")
If Not WinActive("Knoten1 - WAGO-I/O-Check 3","Navigation") Then WinActivate("Knoten1 - WAGO-I/O-Check 3","Navigation")
WinWaitActive("Knoten1 - WAGO-I/O-Check 3","Navigation")
Send("{CTRLDOWN}{RIGHT}{CTRLUP}{CTRLDOWN}{SHIFTDOWN}v{CTRLUP}{SHIFTUP}")
Sleep(2000)
WinWait("Pos.3: 0750-0476"," IDC_DESCRIPTION")
If Not WinActive("Pos.3: 0750-0476"," IDC_DESCRIPTION") Then WinActivate("Pos.3: 0750-0476"," IDC_DESCRIPTION")
WinWaitActive("Pos.3: 0750-0476"," IDC_DESCRIPTION")
Send("{CTRLDOWN}{RIGHT}{CTRLUP}")
Sleep(2000)
WinWait("Knoten1 - WAGO-I/O-Check 3","Navigation")
If Not WinActive("Knoten1 - WAGO-I/O-Check 3","Navigation") Then WinActivate("Knoten1 - WAGO-I/O-Check 3","Navigation")
WinWaitActive("Knoten1 - WAGO-I/O-Check 3","Navigation")
Send("{CTRLDOWN}{SHIFTDOWN}v{SHIFTUP}{CTRLUP}")
Sleep(2000)
WinWait("Pos.4: 0750-0556"," 4AI, 0-10V, S.E.")
If Not WinActive("Pos.4: 0750-0556"," 4AI, 0-10V, S.E.") Then WinActivate("Pos.4: 0750-0556"," 4AI, 0-10V, S.E.")
WinWaitActive("Pos.4: 0750-0556"," 4AI, 0-10V, S.E.")
MouseMove(65,9)
MouseDown("left")
MouseMove(233,-1)
MouseUp("left")
Sleep(1000)
Send("{NUMPAD5}")
Sleep(1000)
Send("{ENTER}")
Sleep(1000)
Send("{TAB}")
Sleep(1000)
Send("{NUMPAD5}")
Sleep(1000)
Send("{ENTER}")
Sleep(2000)
WinWait("Pos.3: 0750-0476"," IDC_DESCRIPTION")
If Not WinActive("Pos.3: 0750-0476"," IDC_DESCRIPTION") Then WinActivate("Pos.3: 0750-0476"," IDC_DESCRIPTION")
WinWaitActive("Pos.3: 0750-0476"," IDC_DESCRIPTION")
Send("{CTRLDOWN}{Left}{CTRLUP}")
Sleep(2000)
Run("C:\Dokumente und Einstellungen\admin\Desktop\ScreenShot\ScreenShot2.exe")
Sleep(2000)
Send("{F2}")
Sleep(3333)
; Programm (orc) start und Programm Ausführung
Run("C:\Programme\FreeOCR25\FreeOCR.exe")
Sleep(4000)
WinWait("FreeOCR.net","")
If Not WinActive("FreeOCR.net","") Then WinActivate("FreeOCR.net","")
WinWaitActive("FreeOCR.net","")
Send("{ALTDOWN}{ALTUP}")
Sleep(1000)
Send("{RIGHT}{RIGHT}")
Sleep(2000)
Send("{ENTER}{ENTER}")
Sleep(3000)
Send("{ALTDOWN}{ALTUP}")
Sleep(1000)
Send("{ENTER}")
Sleep(1000)
Send("{ENTER}")
Sleep(1000)
Send("{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}")
Sleep(1000)
Send("{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}")
Sleep(1000)
Send("{ENTER}")
Sleep(2000)
Send("{ALTDOWN}{ALTUP}")
Sleep(1000)
Send("{RIGHT}")
Sleep(1000)
Send("{ENTER}")
Sleep(1000)
Send("{ENTER}")
Sleep(4000)
Send("{ALTDOWN}{ALTUP}")
Sleep(1000)
Send("{RIGHT}{RIGHT}")
Sleep(1000)
Send("{ENTER}")
Sleep(1000)
Send("{DOWN}")
Sleep(1000)
Send("{ENTER}")
Sleep(2000)
WinWait("Speichern unter","")
If Not WinActive("Speichern unter","") Then WinActivate("Speichern unter","")
WinWaitActive("Speichern unter","")
Sleep(1000)
Send("foto1{ENTER}")
Sleep(2000)
Send("{ALTDOWN}F{ALTUP}")
Sleep(1000)
Send("{DOWN}{DOWN}{DOWN}{DOWN}{DOWN}")
Sleep(1000)
Send("{ENTER}")
Sleep(5000)
;Auswerhtung
$file = FileOpen("C:\Dokumente und Einstellungen\admin\Desktop\foto1.txt", 0)
; Prüfen, ob Datei eingelesen wurde
If $file = -1 Then
MsgBox(0, "Fehler", "Die Datei konnte nicht geöffnet werden.")
Exit
EndIf
; Zeilen des Textes einlesen bis EOF
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
MsgBox(0, "Zeile gelesen:", $line)
Wend
FileClose($file)
_FileReadToArray("C:\Dokumente und Einstellungen\admin\Desktop\foto1.txt",$file);hier dein "Feil" eintragen
$eins=_StringBetween($file[Ubound($file)-2],"Eingang "," V")
$zwei=_StringBetween($file[Ubound($file)-1],"Eingang "," V")
Msgbox(64,"Ergebnis",$eins[0] & @CRLF & $zwei[0])
;StringRegExp ( "E 1: Analog Elngang 5.01 V", "5.01V" [, 1 ] [, $nOffset] ] )
;StringRegExp ( "E 2: Analog Elngang 5.01 V", "5.01V" [, 1 ] [, $nOffset] ] )
;$ueberprufung = MsgBox(1,"Der hexadezimale Wert der Farben lautet: ", Hex($var1, 6) & ", " & Hex($var2, 6) & ", " & Hex($var3, 6) & ", " & Hex($var4, 6))
;If $ueberprufung =1 Then
;$var1 & $var2 & $var3 & $var4= 0x00ff00
ElseIf $zurueck = 2 Then
MsgBox(0,"", " Überprüfen und Neue Starten ")
EndIf
} Hilfe es funktionirt alles bis auf die auswertung