Dich stört echt das nichtmehr existierende Startmenü nicht? Mh ok XD.
Beiträge von chip
-
-
Hi,
mich würde mal interessieren wer auf Windows 8 umsteigt oder auch nicht. Eine Begründung warum ihr umsteigt oder warum nicht wäre gut.
Ich persönlich werde nicht umsteigen, da sich unter der Haupe einfach zu wenig im Vergleich zu Win 7 getan hat.
-
Hi,
fragt mich nicht wozu man das brauchen kann XD. Aber hier mal eine Funktion um den Ostersonntag nach der Osterformel von Lichtenberg (nicht von Gauß) zu berechnen:
Spoiler anzeigen
[autoit]; #FUNCTION# ;===============================================================================
[/autoit] [autoit][/autoit] [autoit]
;
; Name...........: osterformel
; Description ...: Berechnet an welchem Tag in einem gegebenen Jahr Ostersonntag ist
; AutoIt Version : V3.3.8.1
; Syntax.........: osterformel($jahr)
; Parameters ....: $jahr - Die Jahreszahl
; Return values .: Success - Returns : Das Datum wann Ostersonntag ist
; Author ........: chip
;Func osterformel($jahr)
[/autoit] [autoit][/autoit] [autoit]
$a = Mod($jahr, 19)
$k = Round($jahr / 100)$m = 15 + Round((3 * $k + 3) / 4) - Round((8 * $k + 13) / 25)
[/autoit] [autoit][/autoit] [autoit]$d = Mod(19 * $a + $m, 30)
[/autoit] [autoit][/autoit] [autoit]
$s = 2 - Round((3 * $k + 3) / 4)
$r = Round($d / 29) + (Round($d / 28) - Round($d / 29)) * Round($a / 11)
$og = 21 + $d - $r
$sz = 7 - Mod(($jahr + Round($jahr / 4) + $s), 7)
$oe = 7 - Mod(($og - $sz), 7)$os = ($og + $oe) - 1
[/autoit] [autoit][/autoit] [autoit]If $os > 31 Then
[/autoit] [autoit][/autoit] [autoit]
Return ($os - 31 & ". April")
Else
Return ($os & ". März")
EndIfEndFunc ;==>osterformel
[/autoit] -
Sie wiederspricht aber deiner Aussage das FileReadLine beim auffinden aller Ergebnisse in der Textdatei langsamer ist hehe.
-
ControlGetFocus in einer Schleife prüfen.
Edti: Bugfix war schneller
-
ArraySearch sucht nur nach kompletter Übereinstimmung eines Array-Elementes mit dem Vergleichswert.Nein das stimmt nicht. Schau die den sechsten Parameter von ArraySearch an also "iCompare" (in der letzten Version hieß der Parameter noch "iPartial"). Dadurch wird innerhalb von ArraySearch ein StringinStr ausgeführt.
AspirinJunkie keine Ahnung was dein Testscript beweißen soll.
Hier mal ein Beispiel welches "echte" Ergebnisse liefert.
HIer einmal mit _ArraySearch dazu die Testdatei "ende.txt" nehmen bei der die zu Suchende Zeile ganz am Ende steht. Das ganze macht bei _ArraySearch() ein Suchzeit von 0.56 ms und bei FileReadLine macht es 0.74 ms.
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <File.au3>Dim $filequelle = @ScriptDir & "\ende.txt"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Dim $search = "ganzamende"
Dim $array$t = TimerInit()
[/autoit] [autoit][/autoit] [autoit]_FileReadToArray($filequelle, $array)
[/autoit] [autoit][/autoit] [autoit]
_ArraySearch($array, $search)$t = TimerDiff($t) / 1000
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("_ArraySearch(): " & Round($t, 2) & " ms" & @CRLF)$t = TimerInit()
[/autoit] [autoit][/autoit] [autoit]$file = FileOpen($filequelle, 0)
[/autoit]
While 1
$line = FileReadLine($file)
If $line = $search Then
EndIf
If @error = -1 Then ExitLoop
WEnd
FileClose($file)
$t= TimerDiff($t) / 1000
ConsoleWrite("FileReadLine(): " & Round($t, 2) & " ms" & @CRLF)Und hier ein Beispiel bei der das gesuchte Wort mehrmals vorkommt, der einfachheithalber hab ich _ArrayFindAll genommen, da es intern ganz einfach nur _ArraySearch verwendet. Dazu passend die Testdatei "mehrere.txt". Das Ergebiss _ArraySearch braucht 1.11 ms und FileReadLine nur 0.71ms.
Spoiler anzeigen
[autoit]#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <File.au3>Dim $filequelle = @ScriptDir & "\mehrere.txt"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Dim $search = "dazwischen"
Dim $array$t = TimerInit()
[/autoit] [autoit][/autoit] [autoit]_FileReadToArray($filequelle, $array)
[/autoit] [autoit][/autoit] [autoit]
_ArrayFindAll ($array, $search)$t = TimerDiff($t) / 1000
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
ConsoleWrite("_ArraySearch(): " & Round($t, 2) & " ms" & @CRLF)$t = TimerInit()
[/autoit] [autoit][/autoit] [autoit]$file = FileOpen($filequelle, 0)
[/autoit]
While 1
$line = FileReadLine($file)
If $line = $search Then
EndIf
If @error = -1 Then ExitLoop
WEnd
FileClose($file)
$t= TimerDiff($t) / 1000
ConsoleWrite("FileReadLine(): " & Round($t, 2) & " ms" & @CRLF) -
lass mich raten du hast dir noch nie angeschaut wie FileReadToArray und ArraySearch arbeiteten. Sonst wüsstest du das die Kombo aus FileReadToArray + ArraySearch länger dauert als direkt FileReadLine + stringInStr.
-
Mit einer Schleife die Zeilen einzeln zu laden halte ich nicht für geeignet für diesen Zweck. Gerade wenn du größere "Datenbanken" analysieren willst, lade doch zu Anfang die gesamte Datei in einen Array, dann kannst du auch ganz perfekt Zeilenweise suchen. StringSPlit kannst du dann natürlich immernoch verwenden. Die Datei sollte nur nicht größer als der RAM sein

minx
Was langsamer ist als Zeilenweise auslesen.
-
So?
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Misc.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>HotKeySet("{LEFT}", "links")
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{RIGHT}", "rechts")Dim $buttons[10]
[/autoit] [autoit][/autoit] [autoit]
Dim $buttinid = 0
Dim $pos
Dim $altbuttonhandler = 0$hwndMain = GUICreate("Form1", 543, 443, 192, 124)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$Combo1 = GUICtrlCreateCombo("Combo1", 48, 48, 145, 25)
$buttons[0] = GUICtrlCreateButton("Button1", 48, 104, 75, 25, $WS_GROUP)
$buttons[1] = GUICtrlCreateButton("Button2", 136, 104, 75, 25, $WS_GROUP)
$buttons[2] = GUICtrlCreateButton("Button3", 224, 104, 75, 25, $WS_GROUP)
$buttons[3] = GUICtrlCreateButton("Button4", 312, 104, 75, 25, $WS_GROUP)
$buttons[4] = GUICtrlCreateButton("Button5", 408, 104, 75, 25, $WS_GROUP)
$buttons[5] = GUICtrlCreateButton("Button6", 48, 144, 75, 25, $WS_GROUP)
$buttons[6] = GUICtrlCreateButton("Button7", 136, 144, 75, 25, $WS_GROUP)
$buttons[7] = GUICtrlCreateButton("Button8", 224, 144, 75, 25, $WS_GROUP)
$buttons[8] = GUICtrlCreateButton("Button9", 312, 144, 75, 25, $WS_GROUP)
$buttons[9] = GUICtrlCreateButton("Button10", 408, 144, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
GUISetState(@SW_MAXIMIZE)While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Buttonpos($buttinid)
[/autoit] [autoit][/autoit] [autoit]
If Not $altbuttonhandler = "" Then
GUICtrlSetPos($altbuttonhandler, $pos[0], $pos[1], $pos[2], $pos[3])
EndIf$altbuttonhandler = $buttons[$buttinid]
[/autoit] [autoit][/autoit] [autoit]
$pos = ControlGetPos("", "", $buttons[$buttinid])GUICtrlSetPos($buttons[$buttinid], -1, -1, @DesktopWidth / 2, @DesktopHeight - 200); Button wird vergrößert
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Buttonpos
[/autoit] [autoit][/autoit] [autoit]Func links()
[/autoit] [autoit][/autoit] [autoit]
If Not $buttinid = 0 Then
$buttinid = $buttinid - 1
_Buttonpos($buttinid)
EndIf
EndFunc ;==>linksFunc rechts()
[/autoit]
If $buttinid < 9 Then
$buttinid = $buttinid + 1
_Buttonpos($buttinid)
ConsoleWrite($buttinid)
EndIf
EndFunc ;==>rechts -
Zwar ist mir der tiefere Sinn dahinter nicht klar, aber so gehts:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
#include <Misc.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>$hwndMain = GUICreate("Form1", 543, 443, 192, 124)
[/autoit] [autoit][/autoit] [autoit]
$Combo1 = GUICtrlCreateCombo("Combo1", 48, 48, 145, 25)
$Button1 = GUICtrlCreateButton("Button1", 48, 104, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Button2", 136, 104, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Button3", 224, 104, 75, 25, $WS_GROUP)
$Button4 = GUICtrlCreateButton("Button4", 312, 104, 75, 25, $WS_GROUP)
$Button5 = GUICtrlCreateButton("Button5", 408, 104, 75, 25, $WS_GROUP)
$Button6 = GUICtrlCreateButton("Button6", 48, 144, 75, 25, $WS_GROUP)
$Button7 = GUICtrlCreateButton("Button7", 136, 144, 75, 25, $WS_GROUP)
$Button8 = GUICtrlCreateButton("Button8", 224, 144, 75, 25, $WS_GROUP)
$Button9 = GUICtrlCreateButton("Button9", 312, 144, 75, 25, $WS_GROUP)
$Button10 = GUICtrlCreateButton("Button10", 408, 144, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
GUISetState(@SW_MAXIMIZE)Dim $ICtrlId, $pos
[/autoit] [autoit][/autoit] [autoit]
Dim $check = 0While 1
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit] [autoit][/autoit] [autoit]If _IsPressed(09) And $check = 0 Then
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$check = 1
ElseIf Not _IsPressed(09) And $check = 1 Then
$check = 0
_Buttonpos()
EndIf
WEndFunc _Buttonpos()
[/autoit] [autoit][/autoit] [autoit]
If Not $ICtrlId = "" Then
GUICtrlSetPos($ICtrlId, $pos[0], $pos[1], $pos[2], $pos[3])
EndIfLocal $control = ControlGetFocus($hwndMain)
[/autoit] [autoit][/autoit] [autoit]
Local $hHandle = ControlGetHandle($hwndMain, "", $control); Handle des selektierten Controls holen
$ICtrlId = _WinAPI_GetDlgCtrlID($hHandle); CtrlId aus dem Handle erstellen$pos = ControlGetPos("", "", $ICtrlId)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]GUICtrlSetPos($ICtrlId, -1, -1, @DesktopWidth / 2, @DesktopHeight - 200); Button wird vergrößert
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_Buttonpos
[/autoit] -
Hier der Post von UEZ: [ offen ] Grafik(en) in *.exe einbinden ohne Fileinstall
-
Also ich würde das einfach so machen:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <Misc.au3>
#include <WindowsConstants.au3>$Form1 = GUICreate("Form1", 625, 443, 192, 124)
[/autoit] [autoit][/autoit] [autoit]
$Combo1 = GUICtrlCreateCombo("Combo1", 80, 64, 145, 25)
$Button1 = GUICtrlCreateButton("Button1", 104, 136, 75, 25, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Button2", 200, 136, 75, 25, $WS_GROUP)
$Button3 = GUICtrlCreateButton("Button3", 296, 136, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)$check = 0
[/autoit] [autoit][/autoit] [autoit]
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitEndSwitch
[/autoit]
If _IsPressed(09) Then
$check = 1
ElseIf Not _IsPressed(09) And $check = 1 Then
$check = 0
MsgBox(0, "", "es wurde losgelassen")
EndIf
WEnd -
chip das liegt nicht an meinem programm sondern am gezwungenen windows-macht-alles-smooth ding, die progressbar füllt sich viel zu langsam.Quatsch, deine Berechnung ist schlicht und einfach fehlerhaft.
-
Das ist keine Standardkonforme ini also musst das komplett per Hand mit den String-Funktionen machen.
-
Habs mir mal grade angeschaut also irgendwas stimmt da mit deinem Progressbar rechts unten so ganz und garnicht. Sie füllt sich langsam bist zweidrittel und dann ist sie auf einen Schlag ganz voll.
-
Folgenden includes sind überflüssig und kannst du weg lassen:
- ButttonConstants.au3
- EditConstants.au3
- StaticConstants.au3
- WindowsConstants.au3Den Teil kannst auch weg lassen:
Spoiler anzeigen
[autoit]$box1 = 0
[/autoit]
$box2 = 0
$box3 = 0
$box4 = 0
$box5 = 0
$box6 = 0
$box7 = 0
$box8 = 0
$box9 = 0
$box10 = 0 -
Ok dann halt vorgekaut ;):
[autoit]TCPStartup()
[/autoit][autoit][/autoit][autoit]
$MainSocket = TCPListen("127.0.0.1", 80)
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1While 1
[/autoit]
$recv = TCPRecv($ConnectedSocket, 2048)
ConsoleWrite($recv)
WEnd -
Schau dir mal das Beispiel in der Hilfe genauer an, dann siehst deinen Fehler: http://translation.autoit.de/onlinehilfe/functions/TCPRecv.htm
-
Geht recht einfach:
[autoit]While 1
[/autoit]
WinWait("[CLASS:TabbedHostWndClass]")
$titel = WinGetTitle("[CLASS:TabbedHostWndClass]", "")
$neutitel = StringSplit($titel, "<", 2)
WinSetTitle("[CLASS:TabbedHostWndClass]", "", $neutitel[0])
WEnd -