1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. TheLuBu

Beiträge von TheLuBu

  • Script zu uhrzeit X beenden

    • TheLuBu
    • 12. Dezember 2011 um 15:02

    Du kannst prüfen, ob die Zeit größer ist, also z.B:

    [autoit]

    while 1
    if @HOUR > 9 AND @MIN > 0 then ExitLoop
    WEnd

    [/autoit]


    Das Script läuft dann maximal noch einmal durch, danach hört es aber auf

  • vcard Format für Notizen / ENCODING=QUOTED-PRINTABLE

    • TheLuBu
    • 12. Dezember 2011 um 11:05
    Spoiler anzeigen
    [autoit]

    $Text = "Anmerkungen, also Fliesstext mit äüöÄÜÖ und ß und $&" & @CRLF & "Hier die zweite Zeile" & @CRLF & @CRLF & "Hier die dritte Zeile"
    $s = VCard_Encode($Text)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $s = ' & $s & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    Func VCard_Encode($txt, $output = "NOTE;CHARSET=utf-8;ENCODING=QUOTED-PRINTABLE:")
    Local $tmp, $Split, $Outputtxt
    $tmp = StringReplace($txt, " ", "=20")
    $tmp = StringReplace($tmp, @CRLF, "=0D=0A")
    For $i = 128 To 255
    $tmp = StringReplace($tmp, Chr($i), "=" & Hex($i, 2), 0 ,1)
    Next
    $tmp = $output & $tmp
    $Split = StringSplit($tmp, "")
    $Outputtxt = ""
    For $i = 1 To $Split[0]
    If IsInt($i / 75) Then $Outputtxt &= "=" & @CRLF
    $Outputtxt &= $Split[$i]
    Next
    Return $Outputtxt
    EndFunc ;==>VCard_Encode

    [/autoit]

    In deinem Ergebnis sind mehr Zeichen drin als in deinem Text:

    Spoiler anzeigen
    [autoit]

    $t = "=20=C3=A4=C3=BC=C3=B6=C3=84=C3=9C=C3=96"
    $Split = Stringsplit($t, "=")
    $txt = ""
    For $I = 1 To $Split[0]
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : Chr(dec($Split[$i])) = ' & Chr(dec($Split[$i])) & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    Next

    [/autoit]
  • Button mehrfach belegen - einfache Lösung?

    • TheLuBu
    • 9. Dezember 2011 um 14:10

    Hier auch nur mit aktiven Buttons

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    Dim $avArray[10][11]
    $hGui = GUICreate("Button test", 500, 50)
    $lefthaupt = 0
    For $i = 0 To 9
    $left = 0
    $avArray[$i][0] = GUICtrlCreateButton("Button_"&$i, $lefthaupt, 0)
    For $k = 1 To 10
    $avArray[$i][$k] = GUICtrlCreateButton($i &" "&$k, $left, 25, 50)
    GUICtrlSetState($avArray[$i][$k], $GUI_HIDE)
    $left += 50
    Next
    $lefthaupt += 50
    Next
    GUISetState()
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $avArray[0][0] TO $avArray[UBound($avArray) -1][UBound($avArray, 2) -1]
    $hTmp = $nMsg - $avArray[0][0]
    If IsInt($htmp/11) Then
    For $i = 1 To UBound($avArray, 2) - 1
    GUICtrlSetState($avArray[$htmp/11][$i], $GUI_SHOW)
    Next
    For $i = 0 To UBound($avArray) -1
    If $i = $htmp/11 Then ContinueLoop
    For $k = 1 To UBound($avArray, 2) -1
    GUICtrlSetState($avArray[$i][$k], $GUI_HIDE)
    Next
    Next
    ;~ MsgBox(0, "Info", "Button " & $htmp/11+1 & " wurde gedrückt")
    Else
    $Split = Stringsplit($hTmp/11, ".")
    $Split2 = Stringsplit($Split[2], "")
    ;~ MsgBox(0, "Info", "Button " & $Split[1] & " SubButton "&Ceiling($Split2[1]&"."&$Split2[2]&$Split2[3]) &"wurde gedrückt")
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Button mehrfach belegen - einfache Lösung?

    • TheLuBu
    • 8. Dezember 2011 um 14:51

    Ich habe gesucht und gefunden ^^

    hier der _LINK

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Dim $array[19]
    $GUI = GUICreate("On-Event-Modus")

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To 18
    $array[$i] = GUICtrlCreateButton('Button ' & $i + 1, 10, 10 + 20 * $i, 50, 18)
    Next

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()
    While 1
    $nMsg = GUIGetMsg()

    [/autoit] [autoit][/autoit] [autoit]

    Switch $nMsg
    Case $array[0] To $array[18]
    $hTmp = $nMsg - $array[0] + 1
    MsgBox(0, "Info", "Button " & $hTmp & " wurde gedrückt")
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Ich versuche es mal auf dein Script umzuschreiben

    Hier auf dein Script ( nur mit Arrays, sonst geht es nicht)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <Array.au3>
    Dim $avArray[11][11]
    $hGui = GUICreate("Button test", 800, 800)
    $top = 0
    For $i = 0 To 10
    $left = 0
    $avArray[$i][0] = GUICtrlCreateButton("Button_"&$i, $left, $top)
    For $k = 1 To 10
    $left += 50
    $avArray[$i][$k] = GUICtrlCreateButton("SubButton_"&$i, $left, $top)
    Next
    $top += 50
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $avArray[0][0] TO $avArray[UBound($avArray) -1][UBound($avArray, 2) -1]
    $hTmp = $nMsg - $avArray[0][0]
    If IsInt($htmp/11) Then
    MsgBox(0, "Info", "Button " & $htmp/11+1 & " wurde gedrückt")
    Else
    $Split = Stringsplit($hTmp/11, ".")
    $Split2 = Stringsplit($Split[2], "")
    MsgBox(0, "Info", "Button " & $Split[1] & " SubButton "&Ceiling($Split2[1]&"."&$Split2[2]&$Split2[3]) &"wurde gedrückt")
    EndIf
    EndSwitch
    WEnd

    [/autoit]
  • Patientenkartei

    • TheLuBu
    • 8. Dezember 2011 um 08:53

    Ich nutze bei sowas meistens SQL, da man da einfach die Tabelle mit einem UNIQUE KEy belegen kann und doppelte automatisch rausfallen.
    Weiterhin musst du die nicht raussuchen, das macht die SQLite Dll, welche um einiges schneller rechnet ;)

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <SQLite.au3>
    #include <SQLite.dll.au3>
    $Timer = TimerInit()
    Global $aResult, $iRows, $iColumns
    _SQLite_Startup()
    _SQLite_Open()
    _SQLite_Exec(-1, "CREATE TABLE Data (Patientennummer1 VARCHAR(100),Nachname VARCHAR(100),Vorname VARCHAR(100),PGR VARCHAR(100),Datum VARCHAR(100), Patientennummer2 VARCHAR(100), UNIQUE(Nachname, Vorname, Datum));")
    $aSql = 'Begin Transaction ;' & @CRLF
    $Dateiname = "Neues Textdokument.txt"
    $Datei = FileOpen($Dateiname, 0)
    $Read = FileRead($Datei)
    $Lines = Stringsplit($Read, @CRLF)
    For $i = 1 TO $Lines[0]
    If $Lines[$i] = "" Then ContinueLoop
    $Split = Stringsplit($Lines[$i], " ")
    $aSql &= "INSERT OR IGNORE INTO Data VALUES('"&$Split[1]&"', '"&$Split[2]&"', '"&$Split[3]&"', '"&$Split[4]&"', '"&$Split[5]&"', '"&$Split[6]&"');" & @CRLF
    Next
    $aSql &= 'Commit Transaction ;' & @CRLF
    _SQLite_Exec(-1, $aSql)
    _SQLite_GetTable2d(-1, "SELECT * FROM Data;", $aResult, $iRows, $iColumns)
    _ArrayDisplay($aResult)
    _SQLite_Close()
    _SQLite_Shutdown()
    $Diff = Timerdiff($Timer)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Diff = ' & $Diff & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console

    [/autoit]
  • Warum werden Dateien nicht kopiert? Hilfe

    • TheLuBu
    • 7. Dezember 2011 um 21:06

    such mal nach Dateiliste rekursiv von Bugfix, der hat das schon geschrieben, damit werden alle Dateien auch in Unterordnern aufgelistet.

  • $variable - Inhalt ändern mit einer "0" - Null davor

    • TheLuBu
    • 7. Dezember 2011 um 13:53

    Habs geändert, führende Nullen ;)

  • Fenster schliessen

    • TheLuBu
    • 7. Dezember 2011 um 13:32

    So meinte ich das

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $s = WinList() ;holen uns die Fensterliste
    RedIM $s[$s[0][0]+2][2] ; fügen einen Platz zur Fensterliste hinzu
    $s[$s[0][0]+1][0] = "test" ; tragen in das letzte Feld den Text des Hauptfensters ein
    AdlibRegister("CloseUnwantedWindows", 1000)
    ;~ StarteHauptprogramm()
    ; Was auch immer gemacht wird
    ;
    ;
    ;
    ;
    ;
    While 1

    [/autoit] [autoit][/autoit] [autoit]

    WEnd
    Func CloseUnwantedWindows()
    $t = Winlist()
    For $i = 1 TO $t[0][0]
    $search = _ArraySearch($s, $t[$i][0], 0,0,0,0,1,0)
    If $search <> -1 Then ContinueLoop
    WinSetState($t[$i][0], "", @SW_MINIMIZE)
    Next
    EndFunc

    [/autoit]
  • $variable - Inhalt ändern mit einer "0" - Null davor

    • TheLuBu
    • 7. Dezember 2011 um 13:15
    [autoit]

    $asdf = "08946353"
    $asdf = "0" & $asdf

    [/autoit]
  • kurze frage: Globale Variablen in einer Funktion zuweisen ... für späteres reset ...

    • TheLuBu
    • 7. Dezember 2011 um 12:56

    so nicht richtig chip
    Wenn man Variablen Lokal deklariert werden die nur in der Funktion genutzt, nach dem Funktionsaufruf aber wieder verworfen, auch wenn AutoItSetOption("MustDeclareVars", 1)" nicht gesetzt ist ;)
    Heißt, das der Speicher nach den Funktionsaufrufen wieder freigegeben wird.

    Dein Beispiel klappt nur, weil Autoit Alle Variablen Global deklariert, wenn sie nicht anders deklariert sind.
    Alle Variablen, die nicht in einem Funktionsaufruf stehen sind sowieso Global
    Wenn ich bei deinem Beispiel Local y = "lala" nehme klappt es zwar noch, aber bei diesem Beispiel nicht mehr

    Spoiler anzeigen
    [autoit]

    Declare()
    setupY()
    Func Declare()
    Local $y = "lala"
    ConsoleWrite("Vor der Funktion: "& $y & @CRLF)
    EndFunc
    Func setupY()
    ConsoleWrite("In der Funktion: "& $y & @CRLF)
    $y = "huhu"
    ConsoleWrite("Nach ändern in der Funktion: "& $y & @CRLF)
    EndFunc
    ConsoleWrite("Nach der Funktion: "& $y & @CRLF)

    [/autoit]

    UPIA du kannst die Variablen $x, $y bereits zum Anfang deines Scriptes deklarieren

    [autoit]


    Global $x, $y
    setupX()
    ConsoleWrite($x & @CRLF)
    setupY()
    ConsoleWrite($y & @CRLF)
    ; option 1
    Func setupX()
    $x = 5
    EndFunc
    ; option 2
    Func setupY()
    $y = 2
    EndFunc

    [/autoit]
  • Warum werden Dateien nicht kopiert? Hilfe

    • TheLuBu
    • 7. Dezember 2011 um 12:49

    Der Fehler saß im letzten Teil, habs ausgebessert mit hoffentlich genug Kommentaren ;)

    Spoiler anzeigen
    [autoit]

    ; By Hexpirator

    [/autoit] [autoit][/autoit] [autoit]

    ; Das Script soll Dateien aus dem Quellordner mit denen aus dem Zielordner
    ; vergleichen und neu hinzugefügten Dateien in den Zielordner kopieren.
    #include "_GetIntersection.au3"
    #include <File.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("Dateiarchivierer", 402, 293, 261, 151)
    $Datei = GUICtrlCreateMenu("&Datei")
    $Quelle = GUICtrlCreateMenuItem("Quellordner auswählen... (Q)", $Datei)
    $Ziel = GUICtrlCreateMenuItem("Zielordner auswählen... (Z)", $Datei)
    $Beenden = GUICtrlCreateMenuItem("Programm Beenden... (Strg+X)", $Datei)
    $Group1 = GUICtrlCreateGroup("Option wählen:", 8, 104, 377, 81)
    $Radio_loeschen = GUICtrlCreateRadio("Daten im Quellordner löschen !!!", 24, 152, 177, 17)
    $Radio_behalten = GUICtrlCreateRadio("Daten im Quellordner beibehalten", 24, 128, 185, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Modus wählen:", 8, 8, 377, 81)
    $Radio_einmalig = GUICtrlCreateRadio("Daten einmalig abgleichen ?", 24, 32, 161, 17)
    $Radio_automat = GUICtrlCreateRadio("Daten automatisch nach vorgegebener Zeit angleichen", 24, 56, 297, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Los = GUICtrlCreateButton("Los", 8, 224, 83, 33, $WS_GROUP)
    $Label1 = GUICtrlCreateLabel("By Hexpirator", 104, 240, 75, 17)
    GUISetState(@SW_SHOW)
    Dim $Form1_1_AccelTable[1][2] = [["^!p", $Ziel]]
    GUISetAccelerators($Form1_1_AccelTable)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Global $OpenQuell = 0
    Global $OpenZiel = 0

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    ;-----------------------
    Case $GUI_EVENT_CLOSE, $Beenden
    Exit
    ;-----------------------
    Case $Quelle
    _Open_Quell()
    ;-----------------------
    Case $Ziel
    _Open_Ziel()
    ;-----------------------
    Case $Radio_loeschen
    _Radiodelete()
    ;-----------------------
    Case $Los
    _Los()
    ;-----------------------
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;-----------------------

    [/autoit] [autoit][/autoit] [autoit]

    Func _Open_Quell()
    $OpenQuell = FileSelectFolder("Quellordner wählen", "Arbeitsplatz")
    EndFunc ;==>_Open_Quell
    ;-----------------------

    [/autoit] [autoit][/autoit] [autoit]

    Func _Open_Ziel()
    $OpenZiel = FileSelectFolder("Zielordner wählen", "Arbeitsplatz")
    EndFunc ;==>_Open_Ziel
    ;-----------------------

    [/autoit] [autoit][/autoit] [autoit]

    Func _Radiodelete()

    [/autoit] [autoit][/autoit] [autoit]

    $Option_Entscheidung = MsgBox(52, "Achtung!!!", "Möchten Sie die Daten im Quellordner" & @CRLF & "nach dem Kopiervorgang wirklich löchen?")
    ;MsgBox(0,"lesen",$Option_Entscheidung) ;beim JA-drücken -> 6 beim NEIN -> 7
    If $Option_Entscheidung = 7 Then
    GUICtrlSetState($Radio_loeschen, $GUI_UNCHECKED)
    GUICtrlSetState($Radio_behalten, $GUI_CHECKED)
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_Radiodelete
    ;-----------------------

    [/autoit] [autoit][/autoit] [autoit]

    Func _Los()
    $Radio_einmalig_Status = GUICtrlRead($Radio_einmalig)
    $Radio_automat_Status = GUICtrlRead($Radio_automat)
    If $Radio_einmalig_Status = $Radio_automat_Status Then
    MsgBox(48, "Modus", "Bitte Modus wählen.")
    Return
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $Radio_behalten_Status = GUICtrlRead($Radio_behalten)
    $Radio_loeschen_Status = GUICtrlRead($Radio_loeschen)
    If $Radio_behalten_Status = $Radio_loeschen_Status Then
    MsgBox(48, "Option", "Bitte Option wählen.")
    Return
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $aFileList_Quell = _FileListToArray($OpenQuell)

    [/autoit] [autoit][/autoit] [autoit]

    If @error = 1 Then
    MsgBox(64, "Info", "Bitte wählen Sie den Quellordner")
    Return
    Else
    _ArrayDisplay($aFileList_Quell, "Quelle")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $aFileList_Ziel = _FileListToArray($OpenZiel)

    [/autoit] [autoit][/autoit] [autoit]

    If @error = 1 Then
    MsgBox(64, "Info", "Bitte wählen Sie den Zielordner")
    Return
    Else
    _ArrayDisplay($aFileList_Ziel, "Ziel")
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ; Unterschiede zwischen $aFileList_Quell und $aFileList_Ziel ermitteln und auflisten
    $ret = _GetIntersection($aFileList_Quell, $aFileList_Ziel, 0, ' ')
    $diff1 = ''
    $diff2 = ''
    If Not @error Then
    For $i = 0 To UBound($ret) - 1
    If $ret[$i][1] <> '' Then $diff1 &= $ret[$i][1] & ' ; '
    If $ret[$i][2] <> '' Then $diff2 &= $ret[$i][2] & ' ; '
    Next
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    If $diff1 <> $diff2 Then ; Diff1 sah bei mir so aus : $diff1 = 2 ; 2.TXT ;
    $aUnterschied_Quell = StringSplit($diff1, ";") ; hier trennst du nach ";", dabei kommt folgendes raus
    ; $aUnterschied_Quell[0] = '3'
    ; $aUnterschied_Quell[1] = '2 '
    ; $aUnterschied_Quell[2] = ' 2.TXT'
    ; $aUnterschied_Quell[3] = ' '
    ; es sind überall noch Leerzeichen vorhanden
    ; also nehmen wir die noch raus
    For $h = 1 To Number(StringstripWS($aUnterschied_Quell[1], 8)) ; entfernt alle Leerzeichen, es wird eine Zahl erwartet, die kann keine Leerzeichen haben
    FileCopy($OpenQuell & "\" & StringstripWS($aUnterschied_Quell[$h], 3), $OpenZiel & "\" & StringstripWS($aUnterschied_Quell[$h], 3), 9) ; entfernt führende und nachfolgende Leerzeichen und gibt auch den neuen Dateinamen an
    If @error = 1 Then
    MsgBox(0, "", "Fehler")
    EndIf
    Next
    EndIf
    ;MsgBox(0, '', 'Unterschiede 1: ' & $diff1 & @LF & 'Unterschiede 2: ' & $diff2)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_Los

    [/autoit]
  • angeklickte ListView Einträge demarkieren

    • TheLuBu
    • 7. Dezember 2011 um 12:24

    Soweit ich weiß geht das nicht.
    Einen workaround aus dem englischen Forum habe ich mal genutzt.
    Mit

    [autoit]

    _GUICtrlListView_GetItemRect($hWnd, $iIndex[, $iPart = 3])

    [/autoit]

    Die größe des Items herausfinden und dann mit

    [autoit]

    GUICtrlCreateLabel

    [/autoit]

    ein durchsichtiges Label drüberlegen, dann kann es nicht mehr durch direktes klicken ausgewählt werden.

    Hier der Link zum Forum

  • Fenster schliessen

    • TheLuBu
    • 7. Dezember 2011 um 10:38

    Du kannst mit

    [autoit]

    WinActive($Fenster)

    [/autoit]

    prüfen, ob dein Fenster grade aktiviert ist. Wenn nicht, ist ja wahrscheinlich ein zweites Fenster offen, oder öffnen die sich im Hintergrund?

    Ansonsten gäbe es noch die Möglichkeit, mit

    [autoit]

    WinList

    [/autoit]

    eine Liste aller Fenster ausgeben lassen, dann das Hauptfenster zur Liste hinzufügen und dann jedes Fenster schließen, was nicht auf der Liste steht

  • Button mehrfach belegen - einfache Lösung?

    • TheLuBu
    • 7. Dezember 2011 um 09:59

    Ok ich versuche es mal ^^
    Ich hoffe ich habe es richtig verstanden

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    Dim $avArray[11][11]
    $hGui = GUICreate("Button test", 800, 800)
    $top = 0
    For $i = 0 To 10
    $left = 0
    $avArray[$i][0] = GUICtrlCreateButton("Button_"&$i, $left, $top)
    For $k = 1 To 10
    $left += 50
    $avArray[$i][$k] = GUICtrlCreateButton("SubButton_"&$i, $left, $top)
    Next
    $top += 50
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $avArray[0][0]
    For $i = 1 To UBound($avArray, 2) - 1
    GUICtrlSetState($avArray[0][$i], $GUI_HIDE)
    Next
    EndSwitch
    WEnd

    [/autoit]

    Du hast nurnoch ein Array mit den Button Control ID´s, wobei die $avArray[$i][0] Die HauptButtons sind, alle anderen Arrayitems sind dann die jeweiligen anderen Buttons.

    --EDIT-- Noch die Includes eingefügt und ein Beispiel zur Abfrage eingebaut

    --EDIT-- Ansonsten, wenn dir der Ansatz nicht gefällt, poste doch mal dein Script oder zumindest die wichtigen Teile, dann kann man vielleicht eine bessere Lösung finden

  • PDF Dokument auslesen

    • TheLuBu
    • 5. Dezember 2011 um 15:32

    Hallo liebe Community,

    Ich möchte zurzeit ein PDF Dokument auslesen, in dem eine Tabelle gespeichert ist.
    Wenn ich alles kopiere und in ein Textdokument einfüge, bleiben zwar die Spalten bestehen (@CRLF) als Trennzeichen, die einzelnen Spalten sind aber nur mit einem Leerzeichen getrennt.

    Wenn allerdings in 2 Spalten hintereinander im PDF nichts steht, ist auch nur 1 Leerzeichen vorhanden, also kann man die ursprüngliche Tabellenstruktur auch nicht mehr herstellen.
    Gibt es eine Möglichkeit, den Text mit den Trennzeichen zu durchgehen?
    Notfalls würde auch ein PDF2X Tool reichen, dieses dürfte aber nicht installiert werden.

    Vielen Dank schonmal für die Hilfe

  • Combo Dropdown nicht größer als GUI

    • TheLuBu
    • 5. Dezember 2011 um 14:37

    mit

    [autoit]

    _GUICtrlComboBox_SetMinVisible($hCombo, 10)

    [/autoit]


    setzt du die Anzahl an Items, die angezeigt werden können, wenn es mehr Items sind kommen die Scrollbalken.

  • Combobox Item nicht auswählbar setzen

    • TheLuBu
    • 5. Dezember 2011 um 08:43

    genau sowas, hätte ich ja auch selbst drauf kommen können...

    Danke ;)

  • Verhindern das ein Befehl doppelt ausgeführt wird.

    • TheLuBu
    • 5. Dezember 2011 um 08:28

    Hier mal ein Beispiel für die Registry Variante

    [autoit]

    RegWrite("HKEY_CURRENT_USER\Software\Test", "Test Schlüssel", "REG_DWORD", "0")
    ;====================================================================================
    ; Das hier ist was du brauchst, oben das ist nur um den Schlüssel anzulegen
    $var = RegRead("HKEY_CURRENT_USER\Software\Test", "Test Schlüssel") ; prüfen, ob Schlüssel vorhanden
    If $var = 0 Then ; wenn nicht
    RegWrite("HKEY_CURRENT_USER\Software\Test", "Test Schlüssel", "REG_DWORD", "1") ; Schreibt 1 in die Registry, damit das andere Programm nicht den Sound abspielen kann
    SoundPlay("C:\xxx\xxx\2.wav",0) ; spielt den Sound ab
    EndIf
    RegWrite("HKEY_CURRENT_USER\Software\Test", "Test Schlüssel", "REG_DWORD", "0")

    [/autoit]

    ;setzt den Wert wieder zurück, damit wieder ein Sound abgespielt werden kann

  • Verhindern das ein Befehl doppelt ausgeführt wird.

    • TheLuBu
    • 1. Dezember 2011 um 16:00

    Also habe ich das richtig verstanden, das du 2 verschiedene Scripte hast, in denen der Ton laufen kann?
    Dann wäre wie Alina schon geschrieben hat ein Eintrag in ne Ini oder Registry am einfachsten, den dann überprüfen, ob vorhanden, wenn ja dann nicht abspielen, wenn nicht dann abspielen

  • Texturenpack Downloader

    • TheLuBu
    • 1. Dezember 2011 um 15:56

    i2c du lädst die ID vom SubItem, nicht vom Index ;)

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™