Vielen Dank Christoph !!! Dein Script funktioniert !
Heißt das, das ich nach jedem Datensatz den ich empfangen habe die Verbindung trennen muss über TCPCloseSocket ?
Und dann wieder neu beginnen muss ?
LG Tim
Vielen Dank Christoph !!! Dein Script funktioniert !
Heißt das, das ich nach jedem Datensatz den ich empfangen habe die Verbindung trennen muss über TCPCloseSocket ?
Und dann wieder neu beginnen muss ?
LG Tim
Hallo Forum,
ich würde gerne einen einfachen TCP Socket in Autoit erstellen, der die ganze Zeit auf meinem PC auf einem Port läuft.
Wenn sich ein Gerät (egal was) verbindet, soll der Socket das erkennen.
Wenn jetzt Daten von dem Gerät an den Socket gesendet werden, möchte ich diese in einer einfachen MsgBox für den Anfang ausgeben.
Ich habe es auch schon soweit geschafft das ich beim einwählen meines Gerätes die MsgBox bekomme, und wenn ich dann einmalig Daten Sende, dann bekomme ich diese auch ausgegeben.
Aber eben funktioniert das leider nur einmal. Danach muss ich den Socket neu starten.
Könnt Ihr mir helfen zu verstehen warum das nicht funktioniert und nur einmal Daten annimmt und ausgibt?
Danke EUCH, bzw. DIR !
Hier mein kleines Socket Script:
[autoit]
TCPStartup() ; TCP wird initialisiert
$mainsocket = TCPListen("192.168.178.49", 11111) ; Den mainsocket erstellen
[/autoit][autoit][/autoit][autoit]Do ; Solange ausführen bis sich ein Gerät verbindet
$acceptedSocket = TCPAccept($mainsocket) ; Wir versuchen eine möglicher Verbindung anzunehmen
Until $acceptedSocket <> -1
[/autoit][autoit][/autoit][autoit]MsgBox(0,"","Eine Verbindung wurde hergestellt") ; Hier hat ein Gerät eine Anfrage gesendet
[/autoit][autoit][/autoit][autoit][/autoit][autoit]while 1
[/autoit][autoit][/autoit][autoit]$receivedData = TCPRecv($acceptedSocket, 1024) ; Wenn eine Socketverbindung hergestellt wurde, empfange ein Paket vom Client ($connectedSocket)
[/autoit][autoit][/autoit][autoit]if $receivedData <> "" then ;Wenn Daten vorhanden sind, dann gebe die Msgbox aus...
MsgBox(64, "Nachricht empfangen!", "Es wurde eine Nachricht empfangen: " & $receivedData)
EndIf
WEnd
[/autoit][autoit][/autoit][autoit]TCPCloseSocket($acceptedSocket)
[/autoit]Hallo,
um ein Hilfescript zu schreiben würde ich gerne bei einem Tastendruck mir das Wort ausgeben lassen, welches sich unter dem Mauszeiger befindet. Das ganze soll im Browser Firefox funktionieren.
Ich habe leider keine Idee wie ich es nur ansatzweise herausfinden kann.
Würde mich über Denkanstöße freuen ;D
LG
Danke an euch, hat alles wunderbar gepasst !!!
Nabend ;D
Mal ne kleine Frage. Wenn ich einen String habe und weis das da ein Satz dabei ist der mit "G 01"zufällige Zeichen"Z0.1" aufhört, und ich gerne diese ganze Zeile also "G 01"zufällige Zeichen"Z0.1" mit einem anderem String erstezten möchte, kann ich dafür StringRegExp Replace verwenden ?
Ich blicke die Syntax nicht, würde mich freuen wenn mir jemand bitte helfen könnte ;D
Danke Tim
Hallo,
ich benutze zum aauslesen meiner XML Datei den _XMLDOMWrapper.
Ich würde gerne aus folgender Datei
<?xml version="1.0" encoding="UTF-8"?>
<root>
<deviceList dLType="ALL" from="1357358233" to="1359676971">
<device deviceId="1" linkDeviceId="000000000000000000" >
<module moduleId="0" rssiAvg="-104" rssiMin="-126" rssiMax="-81" totalRecCnt="k"/>
</device>
<device deviceId="2" linkDeviceId="000000000000000000" >
<module moduleId="0" rssiAvg="-82" rssiMin="-118" rssiMax="-50" totalRecCnt="k"/>
</device>
</deviceList>
<deviceList dLType="CONFIG" from="1357358233" to="1359677000">
<device deviceId="3" linkDeviceId="000000000000000000" >
<module moduleId="0" rssiAvg="-84" rssiMin="-121" rssiMax="-62" totalRecCnt="441855"/>
</device>
<device deviceId="4" linkDeviceId="000000000000000000" >
<module moduleId="0" rssiAvg="-96" rssiMin="-121" rssiMax="-73" totalRecCnt="k"/>
</device>
</deviceList>
</root>
mittels _XMLDOMWrapper Die Daten (moduleld,rssiAvg,rssiMin...) nur aus dem Teil auslesen der als sLType "CONFIG" stehen hat. Also das was rauskommen sollte sollte diese Daten beinhalten.
from="1357358233"
to="1359677000"
3
moduleId="0"
rssiAvg="-84"
rssiMin="-121"
rssiMax="-62"
totalRecCnt="441855"
4
moduleId="0"
rssiAvg="-96"
rssiMin="-121"
rssiMax="-73"
totalRecCnt="k"
Das Problem ist, das alle Unterdaten mit <device ...> anfangen und nicht verschienen heißen.
Danke !!
funktioniert... danke !
Hallo,
Exceloffen wurde schon weiter oben geöffnet, das hier ist nur ein Ausschnitt, ich habe folgende Funktion:
[autoit]
Global $ExcelDaten
Global $AnzahlanDaten = 100
$ExcelDaten = _ExcelReadArray($Exceloffen,1,1,$AnzahlanDaten,1)
ConsoleWrite(@Error)
und das funktioniert auch prima. Errorcode = 0 . Wenn ich jetzt den Wert aus einem Inputfeld einer GUI hole, funktioniert es nciht und es gibt denn error Code 3 zurück.
[autoit]
Global $ExcelDaten
Global $AnzahlanDaten
$AnzahlanDaten = GuiCtrlRead($Inputfeld)
[/autoit][autoit][/autoit][autoit]$ExcelDaten = _ExcelReadArray($Exceloffen,1,1,$AnzahlanDaten,1)
ConsoleWrite(@Error)
Im Inputfeld meiner GUI steht sicher nur "100" drinnen, kein Leerzeichen oder sonnst was. Wenn ich mir $AnzahlanDaten nach dem auslesen in einer MsgBox anziegen lasse dann steht da auch "100". Aber die Funktion _ExcelReadArray gibt den Fehler 3 zurück...
Wie muss ich $AnzahlanDaten formatieren das es die Funktion _ExcelReadLine ohne Fehlercode lesen kann ???
LG Tim
super funktioniert ;D
LG
Hallo Ihr lieben,
StringRegExp ist noch nicht mein Freund. Ich habe einen String und würde diesen gerne überprüfen ob er folgende Formatierung hat. C:\...
Also ein Großbuchstabe, dann ein : und dann noch ein \. Alles was dahinter steht kann mir egal sein. Hier mein nicht funktionierender Ansatz:
$answer=StringRegExp($test, "\A\d{1}\:\\\", 3)
[/autoit]Danke Tim
nichts, ich wollte nur wissen ob es nun wenn ich es in einem Array habe eine Möglichkeit gibt mit diesen zu arbeiten.
LG
Sorry Beispiel vergessen ![]()
Vorher:
G0 X3.0615 Y6.123
G1 F400.0 Z-1.0
G3 F800.0 X2.5195 Y6.1426 I-0.7582 J-13.5101
G3 X1.715 Y6.0592 I-0.0441 J-3.4998
G3 X1.3296 Y5.9258 I0.4397 J-1.8928
G3 X0.9912 Y5.6982 I0.5634 J-1.2034
G3 X0.6622 Y5.3451 I1.9924 J-2.1862
G3 X0.4395 Y4.917 I0.8957 J-0.738
G2 X0.3982 Y4.8293 I-0.1704 J0.0265
G2 X0.3076 Y4.7949 I-0.0848 J0.087
G2 X0.2197 Y4.8389 I0.0032 J0.1163
G2 X0.2927 Y5.6277 I9.5495 J-0.4854
G2 X0.4102 Y6.4111 I20.9173 J-2.7359
G2 X0.708 Y6.416 I0.5728 J-25.8549
G2 X1.7285 Y6.377 I-0.186 J-18.2095
Nachher:
G0 X3.0615 Y6.123
G1 F400.0 M3 S500
G3 F800.0 X2.5195 Y6.1426 I-0.7582 J-13.5101
G3 X1.715 Y6.0592 I-0.0441 J-3.4998
G3 X1.3296 Y5.9258 I0.4397 J-1.8928
G3 X0.9912 Y5.6982 I0.5634 J-1.2034
G3 X0.6622 Y5.3451 I1.9924 J-2.1862
G3 X0.4395 Y4.917 I0.8957 J-0.738
G2 X0.3982 Y4.8293 I-0.1704 J0.0265
G2 X0.3076 Y4.7949 I-0.0848 J0.087
G2 X0.2197 Y4.8389 I0.0032 J0.1163
G2 X0.2927 Y5.6277 I9.5495 J-0.4854
G2 X0.4102 Y6.4111 I20.9173 J-2.7359
G2 X0.708 Y6.416 I0.5728 J-25.8549
G2 X1.7285 Y6.377 I-0.186 J-18.2095
Es geht halt noch einige Zeilen weiter, und es kommt immerwieder das Z-1.0 vor. Das immer die G1 F400.0 davor steht muss nicht immer so sein.
Hier mein Aktueller Code:
[autoit]#include <file.au3>
#include <Array.au3>
Local $arraygcode
Local $arrayco2aus
Local $arrayco2ein = "G1 F400.0 Z-1.0"
Local $co2aus = "M3 S0"
Local $position = 2
Local $counter = 0
Local $co2ein = "M3 S5000"
$gopen = FileOpenDialog("G-Code öffnen", @desktopdir,"G-Code(*.nc)")
if @error = 1 then ;Datei öffnen
msgbox(64,"Abbruch","Das Öffnen wurde durch den Benutzer "& @UserName & " " & " abgebrochen!")
exit
EndIf
_FileReadToArray($gopen,$arraygcode)
$arrayco2aus = $arraygcode[5] ;Befehl für ausschalten herauslesen
[/autoit][autoit][/autoit][autoit]_ArrayDelete($arraygcode,10) ;Überflüssige Zeile 10 löschen
_ArrayInsert($arraygcode,10,"M8") ; ...und durch M8 ersetzten
_ArrayDelete($arraygcode,5) ; Zeile 5 löschen
$position = _ArraySearch($arraygcode,$arrayco2ein) ;Zeile auslesen
ConsoleWrite($position)
exit
[/autoit][autoit][/autoit][autoit]while $position > 0 ;Ausschaltbefehle ersetzten
$position = _ArraySearch($arraygcode,$arrayco2aus) ;Zeile auslesen
If $position > 0 then ;auf letzte Zeile abfragen
$counter = $counter +1
_ArrayDelete($arraygcode,$position)
_ArrayInsert($arraygcode,$position,$co2aus)
endif
ConsoleWrite($position)
[/autoit][autoit][/autoit][autoit]WEnd
MsgBox(64,"Co2 Auschalten","Es wurden " & $counter & " " & "Zeilen ersetzt.")
$position = _ArraySearch($arraygcode,"M5") ;M5 ersetzten
If @error = 6 then
msgbox(0,"Fehler","Die Zeile ""M5"" wurde nicht gefunden!")
else
_ArrayDelete($arraygcode,$position)
_ArrayInsert($arraygcode,$position,"M9")
EndIf
$position = _ArraySearch($arraygcode,"M30") ;M30 ersetzten
If @error = 6 Then
msgbox(0,"Fehler","Die Zeile ""G28"" wurde nicht gefunden!")
else
_ArrayDelete($arraygcode,$position)
_ArrayInsert($arraygcode,$position,"G28")
endif
$gsave = FileSaveDialog("Datei speichern",@Desktopdir,"G-Code(*.nc)") ;Datei speichern
if @error = 1 then
msgbox(64,"Abbruch","Das Speichern wurde durch den Benutzer "& @UserName & " " & " abgebrochen!")
SetError(9)
else
_FileWriteFromArray($gsave&".nc", $arraygcode,1)
EndIf
if @error = 1 Then
msgbox(16,"Fehler","Die Datei ist von einem anderen Program geöffnet!")
elseif @error = 3 Then
msgbox(16,"Fehler","Fehler beim Schreiben der Datei")
elseif @error = 0 Then
msgbox(64,"Abgeschlossen","Die Datei wurde erfolgreich geschrieben")
EndIf
Hey , ich habe eine text Datei die viele zeilen enthällt. Hier bei handelt es sich um G-Code. Nun gibt es z.B. 100 Zeilen und in jeder Zeile stehen 20 Zeichen. In manchen der Zeilen ist unter den Zeichen die Reihenfolge "M3 S5". Diese möchte ich dann durch einen Text den ich festlegen kann in allen Zeilen ersetzten. Ich öffne die Textdatei und schreibe Sie mit FiletoArray in ein Array. Das bedeutet das jede Zeile meiner .txt nun in einem Array steht. Dieses bearbeite ich soweit. Nun muss ich noch die Zeichen in den Arrayzeilen ersetzten. Doch finde ich keinen befehl im Sinne von _ArrayTextFindAndReplace. Die Sache ist das ich zwar meine zeilen raussuchen kann, wenn ich weis wie die ganze zeile heißt, also der Inhalt vom Array, aber wenn es nur eine bestimmt Zeichenkette im Inhalt des Arrays ist, dann geht es nicht mit _arraySearch. Könnt Ihr mir helfen wie ich das anstellen kann ? Hier ein beispiel von vorher und nachher.
Danke Tim
Morgen Forum,
ich habe erst gerade mitgelesen...
Könnte mir bitte jemand sagen wann solche Witze gemacht worden sein ?
Bzw. um was für Witze geht es denn ? Ich wäre über eine PN dankbar. Dann kann ich entscheiden wie meine MEinung zu dem Thema ausfallen wird.
Danke euch!
Tim
Hallo liebes Forum,
ich habe ein Problem mit einer GUI, die ich "Sizebar" gemacht habe. Jetzt kann ich die Größe verändern. Nun habe ich links oben ein paar Buttons, die ich aber wenn ich die Größe des Fensters ändere nicht auf ihrer Position verziehen möchte. Könnt Ihr mir bitte sagen wie ich die Koordinaten statisch hinbekomme, so das sie immer auf den angegebenen koordinaten bleiben ? Gibt es dafür ein "Style" ?. Ich habe leider keinen gefunden...
Danke
DANKE wunderbar!
So, das klappt nun wunderbar!
Ich gebe die Fenster mit einer GUIList aus.
Ich kann die einzelnen Punkte mit der Maus anklicken. Dann sind diese Markiert. Das ist schonmal gut.
Wenn ich jetzt einen Button mache, auf den ich klicke. würde ich gerne eine msgbox ausgeben in welcher steht was für ein Listenpunkt markiert ist. Wie kann ich diese Information aus der Liste entnehmen ?
LG
Hallo,
mit WinActive kann ich herrausfinden ob ein bestimmtes Fenster geöffnet ist.Ich würde aber gerne eine Liste bekommen von allen Programmen die ein sichtbares Fenster haben. Also quasi herrausfinden wieviele und welche Fenster offen sind. Wie bekomme ich das hin, wenn ich erst garnicht weis was geöffnet ist, ohne eine Liste von 1000 Fensternamen abfragen zu müssen ?
LG
Hallo,
ich würde gerne Text einfach ausgeben. Das besondere Soll sein, das er einen Transparenten Hintergrund hat. Also sollte es so aussehen als würde er einfach auf dem Desktop stehen. Ohne Rahmen oder irgend etwas anderem.
Was gibt es für Möglichkeiten um dies zu lösen ? Mein Ziel ist auch, das ich diesen noch in echtzeit ändern kann. Also nicht das Programm schließen muss und es dann neu öffnen. Ist das ganze mit GDI+ zu lösen ?
LG Tim
Wenn ich in einer Editbox einen Tab mache, spingt er mir zum nächsten Element. Ich hätte aber gerne einen TAB, wie wenn ich in Word z.B. die TAB Taste drücke. Auch beim einlesen einer Textdatei habe ich das Problem, das wenn dort Tabs drinnen sind, das ich keine TABS übernommen bekomme. Bz. Nur den ersten in einer Zeile.
DANKE