gut die erste funktion hätte ich noch geschafft...
aber die zweite
RegExen kann ich nicht ![]()
Beiträge von GE IXI TIM
-
-
Hallo Community
weil mir langweilig war, hab ich mal einen Converter von Dual- zu Dezimalsystem und umgekehrt gemacht...vllt kanns ja jemand brauchen
UDF
[autoit]; #FUNCTION# ======================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _Dual_Dec2Dual()
; Description ...: This function converts an integer to a number in the dualsystem
; Syntax ........: _Dual_Dec2Dual($iInt)
; Parameters ....: $iInt - A Integer
; Return values .: Success
; |Returns a Number in the Dualsystem
; Failure
; |Set Errorcode 1
; Author ........: GE IXI TIM
; Link ..........: http://www.autoIt.de
; =================================================================================================Func _Dual_Dec2Dual($iInt)
[/autoit] [autoit][/autoit] [autoit]
If Not IsInt($iInt) Then SetError(1, 0, 0)
Local $aNum[25], $iStart = 1, $aDual[25] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], $iEnd
Local $iLeft = 0
$aNum[0] = 1
For $i = 1 To 24
$iStart *= 2
$aNum[$i] = $iStart
Next
;_ArrayDisplay($aNum)
For $i = 24 To 0 Step -1
If $iInt >= $aNum[$i] Then
;MsgBox(64, "", $iInt & "-" & $aNum[$i] & " " & $i)
$aDual[24 - $i] = 1
$iInt -= $aNum[$i]
EndIf
Next
For $i = 0 To UBound($aDual) - 1
If $aDual[$i] = 1 Then ExitLoop
If $aDual[$i] = 0 Then $aDual[$i] = ""
NextFor $i = 0 To UBound($aDual) - 1
[/autoit] [autoit][/autoit] [autoit]
$iEnd &= $aDual[$i]
Next
Return $iEnd
EndFunc; #FUNCTION# ======================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _Dual_Dual2Dec()
; Description ...: This funktion converts a number in dualsystem to an integer
; Syntax ........: _Dual_Dual2Dec($iDual)
; Parameters ....: $iDual - a number in dualsystem
; Return values .: Success
; |Returns a integer
; Failure
; |Set errorcode 1
; Author ........: GE IXI TIM
; Link ..........: http://www.autoit.de
; =================================================================================================Func _Dual_Dual2Dec($iDual)
[/autoit] [autoit][/autoit] [autoit][/autoit]
If Not IsInt($iDual) Then SetError(1, 0, 0)
Local $aNum[25], $iStart = 1, $aZif, $iEnd
$aNum[0] = 1
For $i = 1 To 24
$iStart *= 2
$aNum[$i] = $iStart
Next
$aZif = StringSplit($iDual, "")
For $i = $aZif[0] To 1 Step -1
If $aZif[$i] = 1 Then $iEnd += $aNum[$aZif[0] - $i]
Next
Return $iEnd
EndFuncUDF mit Beispiel
[autoit]
[/autoit] [autoit][/autoit] [autoit]
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$hGUI = GUICreate("_Dual Beispiel", 291, 85, 433, 187)
$decdual = GUICtrlCreateRadio("Dezimal zu Dual", 8, 8, 97, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$dualdec = GUICtrlCreateRadio("Dual zu Dezimal", 112, 8, 97, 17)
$Label1 = GUICtrlCreateLabel("Dezimal:", 8, 32, 44, 17)
$Label2 = GUICtrlCreateLabel("Dual:", 8, 56, 29, 17)
$inDEZ = GUICtrlCreateInput("", 56, 32, 225, 21)
$inDUAL = GUICtrlCreateInput("", 56, 56, 225, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
$convert = GUICtrlCreateButton("Convert", 208, 0, 75, 25, $WS_GROUP)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $decdual
If BitAND(GUICtrlRead($decdual), $GUI_CHECKED) = $GUI_CHECKED Then
GUICtrlSetState($inDEZ, $gui_ENABLE)
GUICtrlSetState($inDUAL, $GUI_DISABLE)
EndIf
Case $dualdec
If BitAND(GUICtrlRead($dualdec), $GUI_CHECKED) = $GUI_CHECKED Then
GUICtrlSetState($inDUAL, $gui_ENABLE)
GUICtrlSetState($inDEZ, $GUI_DISABLE)
EndIf
Case $convert
If BitAND(GUICtrlRead($decdual), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetData($inDUAL, _Dual_Dec2Dual(GUICtrlRead($inDEZ)))
If BitAND(GUICtrlRead($dualdec), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetData($inDEZ, _Dual_Dual2Dec(GUICtrlRead($inDUAL)))
EndSwitch
WEndFunc _Dual_Dec2Dual($iInt)
[/autoit] [autoit][/autoit] [autoit]
If Not IsInt($iInt) Then SetError(1, 0, 0)
Local $aNum[25], $iStart = 1, $aDual[25] = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], $iEnd
Local $iLeft = 0
$aNum[0] = 1
For $i = 1 To 24
$iStart *= 2
$aNum[$i] = $iStart
Next
;_ArrayDisplay($aNum)
For $i = 24 To 0 Step -1
If $iInt >= $aNum[$i] Then
;MsgBox(64, "", $iInt & "-" & $aNum[$i] & " " & $i)
$aDual[24 - $i] = 1
$iInt -= $aNum[$i]
EndIf
Next
For $i = 0 To UBound($aDual) - 1
If $aDual[$i] = 1 Then ExitLoop
If $aDual[$i] = 0 Then $aDual[$i] = ""
NextFor $i = 0 To UBound($aDual) - 1
[/autoit] [autoit][/autoit] [autoit]
$iEnd &= $aDual[$i]
Next
Return $iEnd
EndFuncFunc _Dual_Dual2Dec($iDual)
[/autoit] [autoit][/autoit] [autoit][/autoit]
If Not IsInt($iDual) Then SetError(1, 0, 0)
Local $aNum[25], $iStart = 1, $aZif, $iEnd
$aNum[0] = 1
For $i = 1 To 24
$iStart *= 2
$aNum[$i] = $iStart
Next
$aZif = StringSplit($iDual, "")
For $i = $aZif[0] To 1 Step -1
If $aZif[$i] = 1 Then $iEnd += $aNum[$aZif[0] - $i]
Next
Return $iEnd
EndFunc -
Vielleicht solltet ihr die Namen bischen größer machen

aber sonst sau gut
-
Was richtig geil wär, wenn GUI transparent wär und man nur die Uhrzeit sieht und die dann einfach aufem Desktop "rumwerfen" kann

Man tippt gerade an einem Script, die Uhr ist einem im Weg und man pfeffert sie einfach ins nächste Eck :D:D:D -
Is ja mal lustig:D
-
Hier zum Bild:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Ich kuck dann mal mit em direkten dl-link^^
-
Firefox...ich mach mal en Bild.
-
keine Dateiendung (.exe, .jpg, ...)
Ich hab, wenn ich mit das downloade, nur die Datei Unicalc.nix aufem desktop...
wills aber sehen
EDIT: @einige: so dumm bin ich auch wieder net -.- ich gehe auf die Website, und dann ganz unten auf die Buttons. (einmal exe und ein anderer mit source)
dann kommt ein Downloadfenster, wo ich immer nur die Datei UniCalc.nix downloaden kann... -
Ich kann mir die Sachen irgendwie nur als normale Datei runterladen...
ist das normal? -
btw:
[autoit]$PI = ASin(1) * 2
[/autoit]
Man ist ja exakt
-
Mir ist ja schon aufgefallen, dass ichs immer umständlich gemacht hab:D
Zu den 7Min: während ich den Beitrag verfasste, war ich noch kurz in der Küche
-
Wenn ich es richtig verstanden habe, dass du die TextDatei nach einzelnen Zeilen splitten willst mach doch was in der Richting:
Spoiler anzeigen
[autoit]
[/autoit]
#include <File.au3>
#include <Array.au3>
$aTest = _FileSplitLines("DeineDatei.txt")
_arrayDisplay($aTest)
Func _FileSplitLines($sFile)
$iCount = _FileCountLines($sFile)
Dim $aSplit[$iCount+1]
$aSplit[0] = $iCount
for $i = 1 to $iCount
$aSplit[$i] = Filereadline($sFile, $i)
next
Return $aSplit
EndFuncEdit: Da warJonathan wohl schneller...(und Effektiver
dann hab ichs mir immer umständlich gemacht...-.-) -
wie gesagt...klappt alles perfekt^^
Habs gerade eben nochmal mit .rar und .zip getestet...klappt wunderbar.
Hab auch nochmal irgendwelche .jpg und .bmp genommen...ebenfalls perfekt.
eben alles was nicht mit _ScreenCapture erstellt wurde -.- -
Hallo Commuity
Ich hab heute morgen mal die _TCP_File.au3 reingestellt...Unter anderem ist auch ein Beispiel drin.
Als ich es getestet habe, konnte ich alle möglichen Dateitypen senden.
Unter anderem .jpg und .bmp.
Wenn ich jetzt aber ein Bild versenden will, dass mit _ScreenCapture_Capture erstellt wurde, kommt das Bild zwar an, aber es lässt sich nicht öffnen.
Wie gesagt, alle anderen Bild-Dateien gehen perfekt.
Weiß jemand woran das liegt?
lg tim -
danke für das Lob
Ih werd versuchen die UDF noch erwas zu erweitern...
Kennt jemand eine Möglichkeit wie man vllt die Werte der verschickten Bytes feststellen kann?
Weil ein Fortschrittsbalken wäre doch recht nützlich...^^
Kann man das vielleicht über $sRecv bewerkstelligen?
Bin für alles offen
lg tim
-
Hallo @all!
Da ich mir mal ein ChatProgramm mit allen Schikanen machen wollte, war das Verschicken von Dateien unverzichtbar.
Dazu hab ich mir 2 Funktionen gemacht
- _TCP_FileSend
- _TCP_FileRecv
Vielleicht kann sie ja jemand brauchen...UDF:
[autoit]
[/autoit] [autoit][/autoit] [autoit]
; #FUNCTION# ======================================================================================
; Name ..........: _TCP_FileRecv()
; Description ...: This function recives a file and save it on a user defined path.
; Syntax ........: _TCP_FileRecv($iSocket, $sSavePath)
; Parameters ....: $iSocket - The connected socket
; $sSavePath - The path you want to save the file
; Return values .: Success Return 1
; Failure:
; |-1: Socket = -1
; |-2: SavePath = ""
; |-3: SavePath does not exist
; |-4: No data was incoming
; |-5: Incoming data wasn´t a file
; Author ........: GE IXI TIM
; Remarks .......: This function can only be used with _TCP_FileSend.
; Link ..........: http://www.autoit.de
; Example .......:
; =================================================================================================Func _TCP_FileRecv($iSocket, $sSavePath)
[/autoit] [autoit][/autoit] [autoit]
Local $hFile, $sRecv
If $iSocket = -1 Then Return -1
If $sSavePath = "" Then Return -2
If StringRight($sSavePath, 1) <> "\" Then $sSavePath &= "\"
If Not FileExists($sSavePath) Then Return -3
$sRecv = TCPRecv($iSocket, 999999)
If $sRecv <> "" Then
$aRecv = StringSplit($sRecv, "<||>", 1)
if $aRecv[1] <> "FILE" Then Return -5
$hFile = FileOpen($sSavePath & $aRecv[2], 18)
FileWrite($hFile, $aRecv[3])
Return 1
EndIf
Return -4
EndFunc; #FUNCTION# ======================================================================================
[/autoit] [autoit][/autoit] [autoit]
; Name ..........: _TCP_FileSend()
; Description ...: This function sends a file
; Syntax ........: _TCP_FileSend($iSocket, $sFilePath[, $sFileName = ""])
; Parameters ....: $iSocket - The connected Socket
; $sFilePath - The path to the file
; $sFileName - [optional] Name of the file. ("" = Default filename) (default:"")
; Return values .: Return 1
; Failure:
; |-1: Socket = -1
; |-2: FilePath does not exist
; |-3: Error with TcpSend
; Author ........: GE IXI TIM
; Remarks .......: This function can only used with _TCP_FileRecv
; Link ..........: http://www.autoit.de
; Example .......:
; =================================================================================================Func _TCP_FileSend($iSocket, $sFilePath, $sFileName = "")
[/autoit]
Local $hFile, $sFile
If $iSocket = -1 Then Return -1
If Not FileExists($sFilePath) Then Return -2
If $sFileName = "" Then
$aSplit = StringSplit($sFilePath, "\")
$sFileName = $aSplit[$aSplit[0]]
EndIf
$hFile = FileOpen($sFilePath, 16)
$sFile = FileRead($hFile)
FileClose($hFile)
TCPSend($iSocket, "FILE<||>" & $sFileName & "<||>" & $sFile)
If @error Then Return -3
Return 1
EndFuncBeispiel:
[autoit]
[/autoit] [autoit][/autoit] [autoit]
;----Server, start me first----
#include "_TcpFile.au3"
Global $ip = @IPAddress1, $port = 11111, $sucess = 0
TCPStartup()
Global $MainSocket = TCPListen($ip, $port), $conSocket = -1
While $conSocket = -1
$conSocket = TCPAccept($MainSocket)
WEnd
MsgBox(64, "Connection created", "")
While 1
$sucess = _Tcp_FileRecv($conSocket, @DesktopDir)
if $sucess = 1 Then
TCPShutdown()
Exit
EndIf
Sleep(10)
WEnd;--Client
[/autoit]
#include "_TcpFile.au3"
Global $ip = @IPAddress1, $port = 11111, $ConSocket = -1
TCPStartup()
While $ConSocket = -1
$ConSocket = TCPConnect($ip, $port)
WEnd
$file = FileOpenDialog("Choose a File", @DesktopDir, "(*.*)")
_Tcp_FileSend($ConSocket, $file, "")
Sleep(5000)
TCPShutdown()
Exitganzes Paket:
Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. lg. tim
-
Wird immer besser
Hab aber was gefunden: Ihr habt es doch mal gefixt, dass man nicht abstürzen kann, wenn man noch keine Platte berührt hat.
Bei dieser Version ist das wieder der Fall^^ -
-
ich meine ja, bin mir aber nicht sicher:
schau mal hier: http://www.icq-tools.de/ -
aber dann muss der Computer ja auch an sein oder?
Ich will, dass man den Chat auch nutzen kann wenn mein PC aus ist...