Durch deine vielen Cross und Multiposts verlierst du scheinbar die Übersicht. Ich werde nicht dorthin verlinken, du solltest selbst wissen wie du das andere Forum und deine anderen Threads findest.
Beiträge von SEuBo
-
-
Ich brauche sie, solange ich nichts anderes an befehlen kenne... was wären denn bitte die "POST-Befehle" mit denen ich meine infos an den server schicke bzw eine alternative zu inetget ?
http://de.wikipedia.org/wiki/Hypertext…equest-MethodenWie sprenger schon gesagt hat: Schau dir die alternativen WinHTTP oder TCP an. Für beides gibt es gute und einschlägige Tutorials.
Deinen Einstieg in WinHTTP solltest du mithilfe von Google leicht machen
eine TCP Video Tutorial Reihe gibt es hier:
http://www.youtube.com/results?search_query=AutoIt+TCP+Tutorial&aq=f -
folgendes ist auch möglich:
[autoit]ControlFocus($hGUI,"",ControlGetHandle($iCtrlID))
[/autoit] -
Das Script ist richtig. Deine Portweiterleitung ist falsch. Du brauchst die lokale IP (92.xx.xx.xx)
Wäre ja nicht so, dass @night@ dir das nicht schon gesagt hat. Auf deine Aussage dass du das schon gemacht hast, folgte leider kein Screenshot, an dem man nochmals die richtigkeit deiner Änderung erkennen konnte.
-
InetGet ist nicht auf IE aufgebaut.
Ja und nein.
Nicht umsonst benötigt InetGet mindestens den Internet Explorer 3. Ich denke aber es wird nicht der IE selbst, sondern bestimmte Dll's benötigt werden.Aber mal im Ernst? Wer braucht eine 2048 Zeichen lange URL? Genau für so nen Schmarn gibts POST-Befehle....
-
[ gelöst ] Clien sendet an Server nicht übers Inet
Andy: Du kannst es ja auch nicht lassen@Flype: Folge nochmal Andy's Link, und les den 11ten Post, bitte.
Und danach nochmal.
-
So klappts:
(und ich hab mal das GDI+ Zeugs ausgebaut, das war ja echt relativ unnötig)
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]
;=======================>
#region GUI
$hGUI = GUICreate("Sodoku", 300, 370)
Local $aInputs[9][9]
For $x = 0 To 8
For $y = 0 To 8
$left = ($x + 1) * 30
$top = ($y + 1) * 30
$aInputs[$x][$y] = GUICtrlCreateInput("", $left, $top, 20, 20)
Next
Next
$idStartBut = GUICtrlCreateButton("Start", 100, 320, 100)
load_old_sodoku($aInputs)
GUISetState()
;====================>Mit GDI+ die Striche draufmalen
draw_lines()
readSudokuLine("160000000000300050040002000007000020000104000000060007002005000000080006000000001", $aInputs)
;======>
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3 ;GUI_EVENT_CLOSE
Exit
Case $idStartBut
$aSodoku = get_array_of_sodoku($aInputs)
save_Sodoku_Ini($aSodoku)
MakeSodoku($aSodoku, $aInputs)
EndSwitch
Sleep(20)
WEndFunc load_old_sodoku($aInputs)
[/autoit] [autoit][/autoit] [autoit]
If Not FileExists("last_sodoku.ini") Then Return -1
For $x = 0 To 8
For $y = 0 To 8
GUICtrlSetData($aInputs[$x][$y], IniRead("last_sodoku.ini", "section", $x & "|" & $y, ""))
Next
Next
Return 0
EndFunc ;==>load_old_sodokuFunc save_Sodoku_Ini($aSodoku)
[/autoit] [autoit][/autoit] [autoit]
For $x = 0 To 8
For $y = 0 To 8
If $aSodoku[$x][$y] <> 0 Then
IniWrite("last_sodoku.ini", "section", $x & "|" & $y, $aSodoku[$x][$y])
Else
IniWrite("last_sodoku.ini", "section", $x & "|" & $y, "")
EndIf
Next
Next
EndFunc ;==>save_Sodoku_IniFunc get_array_of_sodoku($aInputs)
[/autoit] [autoit][/autoit] [autoit]
Local $aSodoku[10][10]
For $x = 0 To 8 ;die nicht-existierende Reihe mit 0en auffüllen
$aSodoku[$x][9] = 0
Next
For $x = 0 To 8
For $y = 0 To 8
$aSodoku[$x][$y] = GUICtrlRead($aInputs[$x][$y])
If $aSodoku[$x][$y] = "" Then $aSodoku[$x][$y] = 0
Next
Next
Return $aSodoku
EndFunc ;==>get_array_of_sodokuFunc draw_lines()
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetBkColor(GUICtrlCreateLabel("", 114, 20, 3, 280), 0)
GUICtrlSetBkColor(GUICtrlCreateLabel("", 204, 20, 3, 280), 0)
GUICtrlSetBkColor(GUICtrlCreateLabel("", 20, 114, 275, 3), 0)
GUICtrlSetBkColor(GUICtrlCreateLabel("", 20, 204, 275, 3), 0)
EndFunc ;==>draw_linesFunc array_drehen2D($array)
[/autoit] [autoit][/autoit] [autoit]
$er = $array
For $i = 0 To UBound($array) - 1
For $i2 = 0 To UBound($array, 2) - 1
$er[$i][$i2] = $array[$i2][$i]
Next
Next
Return $er
EndFunc ;==>array_drehen2D#endregion GUI
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func MakeSodoku($aFeld, $aInputs)
[/autoit] [autoit][/autoit] [autoit]
Local $aMerk[9][9] ;zum merken, welche Zahlen dort hin passen
While 1
$Ziffervoll = True
For $x = 0 To 8 ;==>Alle Ziffern setzen
For $y = 0 To 8
If $aFeld[$x][$y] = 0 Then
$Ziffervoll = False
$aMerk[$x][$y] = getpossibleNrs($aFeld, $x, $y)
Else
$aMerk[$x][$y] = ""
EndIf
Next
Next
If $Ziffervoll Then ExitLoop
;===>Alle Ziffern setzen, die eindeutig sind
For $x = 0 To 8 ;==>Alle Ziffern setzen
For $y = 0 To 8
If StringLen($aMerk[$x][$y]) = 1 Then
$aFeld[$x][$y] = $aMerk[$x][$y]
$aMerk[$x][$y] = ""
EndIf
Next
Next
;~_ArrayDisplay(array_drehen2D($aFeld), "aFeld")
Sleep(5)
WEnd
;===========================>Berechnung ist beendet
;=======>Jetzt werden die Kontrollfelder ausgefüllt
For $x = 0 To 8
For $y = 0 To 8
GUICtrlSetData($aInputs[$x][$y], $aFeld[$x][$y])
Next
Next
EndFunc ;==>MakeSodokuFunc getpossibleNrs($aFeld, $iX_coord, $iY_coord)
[/autoit] [autoit][/autoit] [autoit]
$sCase = "123456789"
;========>Senkrechte
For $y = 0 To 8
If $aFeld[$iX_coord][$y] <> 0 Then $sCase = StringReplace($sCase, $aFeld[$iX_coord][$y], "")
Next
;=========>Waagrechte
For $x = 0 To 8
If $aFeld[$x][$iY_coord] <> 0 Then $sCase = StringReplace($sCase, $aFeld[$x][$iY_coord], "")
Next
;==============>Daten des 9er-Feldes bestimmen
If $iX_coord < 3 Then ;die Yer
$iX = 1
ElseIf $iX_coord > 5 Then
$iX = 7
ElseIf $iX_coord < 6 And $iX_coord > 2 Then
$iX = 4
EndIf
;=>
If $iY_coord < 3 Then ;die Yer
$iY = 1
ElseIf $iY_coord > 5 Then
$iY = 7
ElseIf $iY_coord < 6 And $iY_coord > 2 Then
$iY = 4
EndIf
;=========>9er-Feld
If $iX > 0 Then
If $aFeld[$iX - 1][$iY] <> 0 Then $sCase = StringReplace($sCase, $aFeld[$iX - 1][$iY], "")
EndIf
If $iX < 9 Then
If $aFeld[$iX + 1][$iY] <> 0 Then $sCase = StringReplace($sCase, $aFeld[$iX + 1][$iY], "")
EndIf
If $iX > 0 And $iY > 0 Then
If $aFeld[$iX - 1][$iY - 1] <> 0 Then $sCase = StringReplace($sCase, $aFeld[$iX - 1][$iY - 1], "")
EndIf
If $iX < 9 And $iY > 0 Then
If $aFeld[$iX + 1][$iY - 1] <> 0 Then $sCase = StringReplace($sCase, $aFeld[$iX + 1][$iY - 1], "")
EndIf
If $iY > 0 Then
If $aFeld[$iX][$iY - 1] <> 0 Then $sCase = StringReplace($sCase, $aFeld[$iX][$iY - 1], "")
EndIf
If $iX < 9 And $iY < 9 Then
If $aFeld[$iX + 1][$iY + 1] <> 0 Then $sCase = StringReplace($sCase, $aFeld[$iX + 1][$iY + 1], "")
EndIf
If $iX > 0 And $iY < 9 Then
If $aFeld[$iX - 1][$iY + 1] <> 0 Then $sCase = StringReplace($sCase, $aFeld[$iX - 1][$iY + 1], "")
EndIf
If $iY < 9 Then
If $aFeld[$iX][$iY + 1] <> 0 Then $sCase = StringReplace($sCase, $aFeld[$iX][$iY + 1], "")
EndIf
;=============>
Return $sCase
EndFunc ;==>getpossibleNrsFunc readSudokuLine($sLine, $aInputs)
[/autoit]
$aChars = StringSplit($sLine, "")
Local $i = 1
For $y = 0 To 8
For $x = 0 To 8
GUICtrlSetData($aInputs[$x][$y], $aChars[$i])
$i += 1
Next
Next
EndFunc ;==>readSudokuLine -
Aus deinem Fetzen kann man doch nix erkennen. Ganzer Code (zumindest lauffähig) oder garnix.
-
Also nochmal.
Ich hatte nur den Textausschnitt den du gepostet hast. Damit man das Beispielscript testen kann, hab ich einfach statt einem FileRead den Textausschnitt eingefügt. Und statt FileWrite eine MsgBox.Ich gehe generell davon aus, dass man genügend Eigeninitiative besitzt, um (vor allem wenn du dich ja scheinbar mit der Hilfedatei auskennst) so einfache Befehle wie FileWrite und FileRead zu finden, und in der Lage ist diese Befehle auch umzusetzen. Selbst wenn deine Versuche dann nicht klappen - versuchs erstmal selber und poste deine Versuche hier. Das zeigt wenigstens deine Motivation.
Jetzt startest du bitte nochmal das script von mir und schaust ob der Teil, der eingefügt werden soll, an der richtigen Stelle ist (!!!!) (in der MsgBox)
Andy: Das ist scheinbar eine Krankheit von mir. Ich komm einfach nicht drumherum zu antworten.
Es ist einfach immer schön geholfen zu haben. Nur manchmal sorgt es für mehr Stress & erhöhten Blutdruck als mir lieb ist.@Kyu
[autoit]$sPfad = "HIER DIE DATEI.TXT"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$sText = FileRead($sPfad)Local $sSuche = '"item" 4', $sErsetzen = "Ich werde eingefügt" & @CRLF
[/autoit] [autoit][/autoit] [autoit]
$sText = StringRegExpReplace($sText, '(\Q' & $sSuche & '\E\s+\{\s+)', "\1" & $sErsetzen);~ MsgBox(0, "", $sText)
[/autoit] [autoit][/autoit] [autoit][/autoit]
FileDelete($sPfad)
FileWrite($sPfad,$sText) -
Code?
[autoit]
Generell sollte_GUICtrlTab_SetCurSel()
[/autoit]
helfen. -
1.Er soll den String net ersetzen sondern 2 Zeilen unter dem String was schreiben
2.Woher soll das Programm bei deiner Methode wissen welche Datei bearbeitet wird? o:
1. Hast du mein Script überhaupt gestartet?
Hättest du dir das Ergebnis genau angeschaut, dann hättest du gesehen dass es genau das macht. Suchen & ersetzen waren nur unglückliche Variablenbenennungen, hatte ne lange nacht...2. Da es ein Beispiel ist, hab ich den Text halt direkt ins Script geschrieben. einfach durch FileRead ersetzen....
-
ja das ist mit RegExp möglich.
Spoiler anzeigen
[autoit]$sText = '"item" 4' & @CRLF & _
[/autoit] [autoit][/autoit] [autoit]
'{' & @CRLF & _
'ALLE ITEMEINTRÄGE HIER' & @CRLF & _
'}' & @CRLF & _
'"mvr" 5' & @CRLF & _
'{' & @CRLF & _
'ALLE MONSTEREINTRÄGE HIER' & @CRLF & _
'}' & @CRLFLocal $sSuche = '"item" 4', $sErsetzen = "Ich werde eingefügt" & @CRLF
[/autoit]
$sText = StringRegExpReplace($sText, '(\Q' & $sSuche & '\E\s+\{\s+)', "\1" & $sErsetzen)
MsgBox(0, "", $sText)Wenn das so nicht nach deinen Wünschen ist, musst du's nochmal erklären
-
Die Dinger heißen Matrixen und ja damit kann man Bilder drehen.
Nein die heißen Matrizen!
Eine Matrix, Zwei Matrizen -
. Die Subskripte werden als exe-Files kompiliert und dann vom Hauptskript per ShellExecute aufgerufen.
[autoit]
Um den unnötigen Speicherverbrauch zu minimieren, behalte die Scripte im .au3 Format. Lediglich ein "Starter-Script" muss kompiliert werden.If $CmdLine[0] = 0 Then Exit
[/autoit]
If Not FileExists($CmdLine[1]) Then Exit
Run('"' & @AutoItExe & '" /AutoIt3ExecuteScript "' & $CmdLine[1] & '"')Somit bleiben die Scripte unkompiliert, und du kannst sie einfach ausführen. (du kannst ihnen dann auch andere endungen geben. Zum Beispiel .arr statt .au3
Das starter script ist natürlich optional, du kannst andere scripte auch direkt mit
[autoit]Run('"' & @AutoItExe & '" /AutoIt3ExecuteScript "' & $sPfad & '"')
[/autoit]
aufrufen. -
-
Warum nicht einfach so?!
[autoit]$hGUI = GUICreate("")
[/autoit][autoit][/autoit][autoit]
$cInput = GUICtrlCreateInput("",20,20,200,20)
GUISetState()While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $cInput
MsgBox(0,"","Bestätigt!")
EndSwitch
WEnd -
[autoit]
StdoutRead
[/autoit]sollte dir helfen (einfach mal draufklicken)
-
Hier mal ein Anfang. Hab ehrlich gesagt keine Lust das jetzt zu perfektionieren.
Spoiler anzeigen
[autoit]$hGUI = GUICreate("")
[/autoit] [autoit][/autoit] [autoit]
GUISetState()
_GUICtrlCreate($hGUI, "Input", "Mein Input", 20, 20, 200, 20)_GUICtrlCreate($hGUI, "Label", "Das ist ein Label", 20, 70, 200, 20)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
EndSwitch
WEnd
;~ GUICtrlCreateInput(
Func _GUICtrlCreate($hWnd, $sWhat, $sTitle, $iX, $iY, $iWidth = -1, $iHeight = -1, $iStyle = -1, $iExStyle = -1)
Local Const $WS_POPUP = 0x80000000, $WS_SIZEBOX = 0x00040000, $WS_BORDER = 0x00800000, $WS_EX_MDICHILD = 0x40
Local $iCtrlID, $hGUI
$hGUI = GUICreate("", $iWidth, $iHeight, $iX, $iY, BitOR($WS_POPUP, $WS_SIZEBOX), $WS_EX_MDICHILD, $hWnd)
Execute("GUICtrlCreate" & $sWhat & "(" & "'" & $sTitle & "'" & "," & 0 & "," & 0 & "," & $iWidth & "," & $iHeight & ")")
ConsoleWrite(Hex(@error, 4) & @CRLF)
GUISetState(@SW_SHOW, $hGUI)
GUICtrlSetResizing(-1, 34)
Return $iCtrlID
EndFunc ;==>_GUICtrlCreate -
_GUICtrlRichEdit_AppendText statt GUICtrlSetData
-
Setz mal Zeile 9 ("GUISetState()") in Zeile 6, vor den Funktionsaufruf