Einfacher: Poste doch mal einen String mit den seltsamen Zeichen.
Beiträge von BugFix
-
-
$WrongNewsBody = Stringreplace($ServerBody,"{ENTER}",@CRLF)
Das geht so nicht. Du mußt den exakten String aus dem Original hier eintragen (und da steht bestimmt nicht {ENTER}).
Evtl. mit ASCII-Code arbeiten. Und auf jeden Fall CaseSensitiv aktivieren! -
Man kann. Da das aber in Richtung Keylogger geht, wird es keine direkte Hilfe dazu geben.
-
Aus deiner Beschreibung habe ich entnommen, dass du zeilenweise abarbeiten möchtest. Deshalb dieser Aufbau.
Vielleicht kannst du ja mal ganz klar und verständlich sagen, was genau ablaufen soll.
Und zwar Schritt für Schritt.
Momentan werd ich nicht ganz schlau draus. -
Schau dir das bitte mal im HEX-Editor an. Du kannst doch problemlos mit StringReplace diese Zeichen durch einen Zeilenumbruch ersetzen.
-
Das heißt, es ist kein Array da - also konnte die datei nicht eingelesen werden.
Falscher Pfad oder was auch immer. Rückgabewert der Funktion prüfen.Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit]
Dim $sFilePath = 'Pfad....'
Dim $outFile = 'Pfad...'
Dim $aArray
$ret = _FileReadToArray ( $sFilePath, $aArray ) ; datei in Array lesen
If @error Then
MsgBox(0, '', 'Datei konnte nicht eingelesen werden.')
Exit
EndIf
For $i = 1 To $aArray[0] ; zeilenweise durchgehen
$Eingabe = InputBox ( "title", "Prompt" ) ; hier kannst du auch die Zeile ($aArray[$i]) mit ausgeben als 'title'
$aArray[$i] = StringReplace($aArray[$i], 'XX', $Eingabe) ; der String wird ersetzt durch den String mit der Eingabe
Next
If FileExists($outFile) Then FileDelete($outFile) ; falls Ausgabedatei bereits vorhanden - löschen
_FileWriteFromArray($outFile, $aArray, 1) ; vom Array in Ausgabedatei schreiben -
Verwende statt Label ein Input, das hat per Default Autoscroll. Kannst es ja mit ReadOnly-Style kombinieren.
-
Bei solch sensiblen Themen reagieren wir auch entsprechend vorsichtig.
Umso deutlicher wird, dass eine offene Darlegung aller Fakten von Vornherein hilft, Mißverständnisse zu vermeiden.Aber es bleibt wohl trotzdem dabei, dass niemand dies programmiert, weil dir die Zeit fehlt. Das geht am Sinn des Forums vorbei.
-
Zitat
Nach meinen Erfahrungen, dürfte das nicht all zu schwer sein, ich würde es selber machen, wenn ich genügend zeit dafür hätte!
Das trifft doch den Nagel auf den Kopf.
Es ist weder besonders schwer NOCH zeitintensiv. Ich schätze mal, inkl. Fehlerroutinen zwischen 600 und 800 Codezeilen.Erzähl mir nicht, dass du diese Zeit nicht aufbringen kannst. Denn es geht ja nur um reine Schreibarbeit, da du, wie du sagst, fit bist im proggen.
Also wird sich hier wohl niemand dafür finden.
-
[autoit]
#include <File.au3>
[/autoit][autoit][/autoit][autoit][/autoit][autoit]
Dim $sFilePath = 'Pfad....'
Dim $outFile = 'Pfad...'
Dim $aArray
_FileReadToArray ( $sFilePath, $aArray ) ; datei in Array lesenFor $i = 1 To $aArray[0] ; zeilenweise durchgehen
[/autoit][autoit][/autoit][autoit]
$Eingabe = InputBox ( "title", "Prompt" ) ; hier kannst du auch die Zeile ($aArray[$i]) mit ausgeben als 'title'
$aArray[$i] = StringReplace($aArray[$i], 'XX', $Eingabe) ; der String wird ersetzt durch den String mit der Eingabe
NextIf FileExists($outFile) Then FileDelete($outFile) ; falls Ausgabedatei bereits vorhanden - löschen
[/autoit]
_FileWriteFromArray($outFile, $aArray, 1) ; vom Array in Ausgabedatei schreiben -
Nur bei einemTitel? Bei allen Titeln?
Werde mal etwas genauer. -
Hier, ich hab mal deine Ausleseroutine mit eingebunden.
Check mal obs so läuft.Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <GuiList.au3>
Opt("GUIOnEventMode", 1)
Opt("MouseCoordMode", 0)
Global $start
Global $n = 0
Global $MousePos = True
Global $pos
Global $clickspeed = RegRead("HKEY_CURRENT_USER\Control Panel\Mouse", "DoubleClickSpeed")#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Form1", 395, 447, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_PRIMARYdown')
GUISetOnEvent($GUI_EVENT_PRIMARYUP, '_PRIMARYup')
$List1 = GUICtrlCreateList("", 20, 20, 355, 407, BitOR($WS_BORDER, $WS_VSCROLL))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###_FillList()
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc Form1Close()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc _FillList()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
Local $search = FileFindFirstFile("C:\Dokumente und Einstellungen\Lenny\Eigene Dateien\Meine Musik\*.mp3")
If $search = -1 Then
MsgBox(0, "Error", "No files/directories matched the search pattern")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
_GUICtrlListAddItem ( $List1, $file )
WEnd
EndFuncFunc _List_1_DblClick()
[/autoit] [autoit][/autoit] [autoit]
Local $txt = _GUICtrlListGetSelItemsText ( $List1 )
If IsArray($txt) Then ShellExecute( $txt[1] )
EndFuncFunc _PRIMARYdown()
[/autoit] [autoit][/autoit] [autoit]
$pos = MouseGetPos()
Select
Case _CheckCtrlDblClick($Form1, $List1)
_List_1_DblClick()
Case Else
$MousePos = False
EndSelect
EndFuncFunc _PRIMARYup()
[/autoit] [autoit][/autoit] [autoit]
If $MousePos Then
If $n = 2 Then
$n = 0
Else
$start = TimerInit()
EndIf
EndIf
EndFuncFunc _CheckCtrlDblClick($GUI, $CTRL)
[/autoit]
Local $CtrlPos = ControlGetPos($GUI, '', $CTRL)
If ($pos[0] >= $CtrlPos[0] And $pos[0] <= $CtrlPos[0] + $CtrlPos[2]) And _
($pos[1] >= $CtrlPos[1] +20 And $pos[1] <= $CtrlPos[1] +20 + $CtrlPos[3]) Then
$n += 1
$MousePos = True
If $n = 2 And (TimerDiff($start) < $clickspeed) Then
Return True
Else
$start = TimerInit()
$n = 1
EndIf
EndIf
EndFunc -
Du suchst sicher 'ne Inputbox.
-
Guckst du

Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <GuiList.au3>
Opt("GUIOnEventMode", 1)
Opt("MouseCoordMode", 0) ; Maus-Koordinaten relativ zum Fenster
Global $start
Global $n = 0
Global $MousePos = True
Global $pos
Global $clickspeed = RegRead("HKEY_CURRENT_USER\Control Panel\Mouse", "DoubleClickSpeed")#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Form1", 467, 260, 193, 115)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_PRIMARYdown')
GUISetOnEvent($GUI_EVENT_PRIMARYUP, '_PRIMARYup')
$List1 = GUICtrlCreateList("", 25, 18, 290, 175, BitOR($WS_BORDER, $WS_VSCROLL))
$Input1 = GUICtrlCreateInput("", 25, 214, 290, 21)
$MyButton1 = GUICtrlCreateButton("Liste füllen", 340, 34, 100, 30, 0)
GUICtrlSetOnEvent(-1, '_FillList')
$MyButton2 = GUICtrlCreateButton("Liste leeren", 344, 148, 100, 30, 0)
GUICtrlSetOnEvent(-1, '_ClearList')
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
WEndFunc Form1Close()
[/autoit] [autoit][/autoit] [autoit]
Exit
EndFuncFunc _FillList()
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To 20
_GUICtrlListAddItem ( $List1, "Eintrag Nummer: " & $i )
Next
EndFuncFunc _ClearList()
[/autoit] [autoit][/autoit] [autoit]
_GUICtrlListClear ( $List1 )
EndFuncFunc _List_1_DblClick()
[/autoit] [autoit][/autoit] [autoit]
Local $txt = _GUICtrlListGetSelItemsText ( $List1 )
If IsArray($txt) Then GUICtrlSetData( $Input1, $txt[1] )
EndFuncFunc _PRIMARYdown()
[/autoit] [autoit][/autoit] [autoit]
$pos = MouseGetPos()
Select
Case _CheckCtrlDblClick($Form1, $List1)
_List_1_DblClick()
Case Else
$MousePos = False
EndSelect
EndFuncFunc _PRIMARYup()
[/autoit] [autoit][/autoit] [autoit]
If $MousePos Then
If $n = 2 Then
$n = 0
Else
$start = TimerInit()
EndIf
EndIf
EndFuncFunc _CheckCtrlDblClick($GUI, $CTRL)
[/autoit]
Local $CtrlPos = ControlGetPos($GUI, '', $CTRL)
If ($pos[0] >= $CtrlPos[0] And $pos[0] <= $CtrlPos[0] + $CtrlPos[2]) And _
($pos[1] >= $CtrlPos[1] +20 And $pos[1] <= $CtrlPos[1] +20 + $CtrlPos[3]) Then
$n += 1
$MousePos = True
If $n = 2 And (TimerDiff($start) < $clickspeed) Then
Return True
Else
$start = TimerInit()
$n = 1
EndIf
EndIf
EndFunc
Dran denken: Verwende OnEvent-Mode -
Denk doch mal etwas nach

Du mußt einen Eintrag markieren, dann auslesen und erst dann kannst du die Datei ausführen.
Zwei Möglichkeiten:
- Auswahl per Doppelklick oder
- Eintrag markieren und per Kontextmenü auslesenFür Doppelklick habe ich im Skriptforum ein Bsp. stehen, wie du Doppelklick auf jedes Control anwenden kannst.
-
Du mußt erst die Liste in der GUI erstellen, dann die Daten suchen und dann die Liste befüllen.
Ich habs mal vorbereitet.Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <GuiList.au3>
Dim $arFile[1]$Form1 = GUICreate("AForm1", 395, 447, 694, 280)
[/autoit] [autoit][/autoit] [autoit]
$Button1 = GUICtrlCreateButton("Schließen", 152, 0, 75, 25, 0)
$liste = GUICtrlCreateList('', 0, 24, 393, 409)$search = FileFindFirstFile("C:\Dokumente und Einstellungen\Lenny\Eigene Dateien\Meine Musik\*.mp3")
[/autoit] [autoit][/autoit] [autoit]
If $search = -1 Then
MsgBox(0, "Error", "No files/directories matched the search pattern")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
ReDim $arFile[UBound($arFile)+1]
$arFile[UBound($arFile)-1] = $file
WEnd
For $i = 1 To UBound($arFile) -1
_GUICtrlListAddItem ( $liste, $arFile[$i] )
Next
[/autoit]
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Exit
EndSwitch
WEnd -
Dazu sollte dir dieses witerhelfen:
ZitatBCD – Binär codierte Dezimalzahl
Da die Dezimalzahlen in jeder Stelle 10 verschiedene Ziffern aufweisen können sind für die binäre Darstellung von 10 Elementen 4 Stellen notwendig. Eine binär codierte Dezimalzahl hat daher je Stelle der Dezimalzahl eine binäre Vierergruppe.
Die Rückübersetzung von BCD – codierten Darstellungen erfolgt, indem man mit der niederwertigsten ( mit der ganz rechten ) Gruppe beginnt und jede Vierergruppe einzeln übersetzt.
Häufig wird der BCD – Code zusammenhängend und nicht in Vierergruppen dargestellt. Dabei sind die vor der ersten 1 stehenden Nullen weggelassen. Bei der Umwandlung muß dies berücksichtigt werden.
-
Aber, aber - nix in der Suche gefunden :lol:
Wonach hast du da nur gesucht?
Schau mal FileFindFirstFile() / FileFindNextFile()
Dort kannst du mit Wildcards suchen.
Die gefundenen Dateinamen einfach in eine Liste füllen.
Bei Klick auf Listenelement Shellexecute()So mal als grobe Anleitung.
-
Ich verweise mal auf die Antwort von huggy:
Zitat$Socket = _FFStart()
Der rückgabewert von _FFStart() wird als $Socket definiert.
Bitte alle posts lesen.
-
So gehts:
Spoiler anzeigen
[autoit]#include <GUIConstants.au3>
[/autoit]
$gui = GUICreate("Codak", 300, 300)
$lbl = GUICtrlCreateLabel("Codak", 10, 10, 50, 17)
$pic = GUICtrlCreatePic("C:\Dokumente und Einstellungen\xNamex\Eigene Dateien\Eigene Bilder\texture.jpg", 0, 0, 300, 300)
GUICtrlSetState($pic, $GUI_DISABLE)
$ok = GUICtrlCreateButton("OK", 70, 10, 30, 20)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $ok
MsgBox(0, '', 'OK')
EndSelect
WEnd