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. sc4ry

Beiträge von sc4ry

  • _FileListToRekursiv Update: 08.07.2011

    • sc4ry
    • 22. Januar 2010 um 14:02

    Hey,

    zumindest das hier stimmt nicht ;)

    ->

    [autoit]

    ; Parameter(s): $OD 0 (Standard)

    [/autoit]


    $OD muss noch manuell als 0 deklariert werden, da es in der Func noch nicht drin ist.

    Ansonsten scheint es das zu machen, was soll

    _FileList.au3: C:\ 64755 Dateien + Ordner in 9427,276 ms
    _GetFilesFolder_Rekursiv.au3: C:\ 64762 Dateien + Ordner in 41435,611 ms (2. Versuch in 26840,345)

    BugFix listet 7 Dateien mehr, aber vom Speed her geschlagen

    getestet, jeweils

    [autoit]

    $start = TimerInit()
    ;Function
    _ArrayDisplay($blubb, TimerDiff($start))

    [/autoit]

    PS: es heißt übrigens PHASE =)

  • FTP-Server mit AutoIt möglich?

    • sc4ry
    • 21. Januar 2010 um 15:44

    Hey Concarca,

    besten Dank für die Infos, das sieht auf den ersten Blick schonmal sehr brauchbar aus.
    Bzgl. dass es schon viele FTP-Server gibt ... ja klar, aber noch keinen in AutoIT (zumindest soweit ich weiss).

    @bennebartsch

    falls du die ftp.exe meinst, so ist das meines wissens nach nur ein client auf command-line ebene, mehr nicht. falls du noch was anderes meinst,
    sag bescheid, dann schein ich das nicht zu kennen =)

  • FTP-Server mit AutoIt möglich?

    • sc4ry
    • 21. Januar 2010 um 10:00

    Hallo,

    da ich mich jetzt mal an das Thema TCP ranwagen wollte, kam mir die idee, nen simplen FTP-Server zu schreiben. Frage ist aber, ist das in AutoIt überhaupt möglich, bzw wie sinnvoll ist das ganze?

    Könnten z. B. mehrere Connections/ Transfers hergestellt werden?
    Auch relativ wichtig für mich wäre da irgendwie SSL-Support reinzubasteln.

    Und noch eine der wichtigeren Fragen, wie würde ich rausbekommen, was ein entsprechender FTP-Client sendet, damit der Server entsprechend darauf reagieren kann?

    Besten Dank für die Hilfe.

  • Zeile in Edit löschen

    • sc4ry
    • 17. Januar 2010 um 14:40

    hmm ok, ich verstehe, undo geht nur, wenn auch die _GuiCtrlEdit_-Funktionen benutzt wurden, nicht generell Änderungen am Edit.
    Schade, dann kann ichs eigentlich rausschmeissen, weil so gut wie überall Nicht-_GuiCtrlEdit_-Funktionen drin sind.

  • Zeile in Edit löschen

    • sc4ry
    • 16. Januar 2010 um 18:33

    Hey,

    kann mir nochmal jmd helfen ... und zwar hab ich _GUICtrlEdit_CanUndo gesagt, dass man auch sachen rückgängig machen kann.
    auf nem button führe ich die funktion _GUICtrlEdit_Undo aus ... aber meistens passiert nichts.

    der großteil, der sachen, die im edit gemacht werden, wird ebenfalls per knopfdruck gemacht. also aus einem text werden die wichtigen elemente rausgefischt und der unwichtige text dadurch ersetzt. undo geht dann aber nicht mehr ...

    muss ich noch irgendwas beachten, wenn ich eine funktion im edit starte?

  • Zeile in Edit löschen

    • sc4ry
    • 16. Januar 2010 um 17:46

    Hi Raupi,

    habs auch grad rausgefunden, zumal $edit1 eh schon aus GetHandle bestand ;)

    so gehts wunderbar, thx

    [autoit]

    GUICtrlSetData($GuiEdit1, StringRegExpReplace(GUICtrlRead($GuiEdit1), @CRLF & @CRLF, ""))

    [/autoit]
  • Zeile in Edit löschen

    • sc4ry
    • 16. Januar 2010 um 17:32

    hmm, da passiert irgendwie nichts, habs so

    GUICtrlSetData(GUICtrlGetHandle($Edit1), StringReplace(GUICtrlRead(GUICtrlGetHandle($Edit1)), @CRLF, ""))

  • Zeile in Edit löschen

    • sc4ry
    • 16. Januar 2010 um 16:07

    ist umständlich, aber es geht ... wobei ich jetzt ne leerzeile hab, obwohl er eigentlich die lines zusammenschieben könnte

    [autoit]

    For $i = _GUICtrlEdit_GetLineCount ($edit1) To 1 Step -1
    If Not StringInStr(_GUICtrlEdit_GetLine($edit1, $i), "/") Then
    $SelText = _GUICtrlEdit_SetSel($edit1, _GUICtrlEdit_LineIndex($edit1, $i), _GUICtrlEdit_LineIndex($edit1, $i) + _GUICtrlEdit_LineLength($edit1, $i))
    _GUICtrlEdit_ReplaceSel($edit1, "")
    EndIf
    Next

    [/autoit]
  • Zeile in Edit löschen

    • sc4ry
    • 16. Januar 2010 um 15:48

    Hi, ich hab ein Edit und würde gerne alle Lines, die kein "/" enthalten, löschen ... aber irgendwie finde ich keine entsprechende funktion in der hilfe.
    wer kann helfen?

  • Excel: SVERWEIS/ VERWEIS-Alternative

    • sc4ry
    • 14. Januar 2010 um 09:52

    Hi Alina,

    also was am Ende rauskommt, ist schon gut, aber ich bin nicht von der Wenn-Funktion für diese Aufgabe überzeugt.
    Da jede Woche Begriffe hinzukommen können, müsste ich die Formel ja auch immer erweitern.

    Wenn es eine Wenn-Formel mit z. B. Bereich.verschieben wäre, wäre es Ok (wobei ich nicht genau weiss, was Bereich.verschieben im Detail bewirkt).

    Also ich habe das ganze jetzt schon mit AutoIt umgesetzt, dennoch hätte ich gerne eine Lösung für das Problem (für die Zukunft gewusst). Deine Lösung ist defintiv auch eine Lösung, aber es muss doch noch was anderes (einfacheres) geben, oder?

    Dank dir auf jeden fall =)

  • Excel: SVERWEIS/ VERWEIS-Alternative

    • sc4ry
    • 13. Januar 2010 um 17:10

    Hi,

    dank dir. Also ich würde auch sagen, dass ich mich schon recht gut mit Excel auskenne, zumindest hab ich bis jetzt mit Google und der Hilfe alles hinbekommen =)

    So, hier mal das Bsp.

    Dateien

    Beispiel.rar 2,18 kB – 468 Downloads
  • _ExcelSort

    • sc4ry
    • 13. Januar 2010 um 16:52

    Hi, hier mal ganz billig aus der Hilfe gezaubert =)

    [autoit]

    ; ******************************************************************************************
    ; Example 1 - After opening a workbook and returning its object identifier,
    ; Fill some cells and Read the Values into an Array, using various paramaters.
    ; ******************************************************************************************

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

    #include <Excel.au3>
    #include <Array.au3>

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

    Local $oExcel = _ExcelBookNew() ;Create new book, make it visible

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

    ; We can fill-up some cells using a simple loop and random Numbers
    For $y = 1 To 10 ;Start on Column 1
    For $x = 1 To 15
    _ExcelWriteCell($oExcel, Round(Random(1000, 10000), 0), $x, $y) ;Some random numbers to file
    Next
    Next

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

    _ExcelSort($oExcel, "A", 2, 1, 15, 10)

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

    ;===============================================================================
    ;
    ; Description: Performs a simplified sort on a range.
    ; Syntax: _ExcelSort($oExcel, $sKey, $sRangeOrRowStart, $iColStart = 1, $iRowEnd = 1, $iColEnd = 1, $iDirection = 2)
    ; Parameter(s): $oExcel - An Excel object opened by a preceding call to _ExcelBookOpen() or _ExcelBookNew()
    ; $sKey - The key column or row to sort by (a letter for column, a number for row)
    ; $sRangeOrRowStart - Either an A1 range, or an integer row number to start from if using R1C1
    ; $iColStart - The starting column for the number format(left) (default=1)
    ; $iRowEnd - The ending row for the number format (bottom) (default=1)
    ; $iColEnd - The ending column for the number format (right) (default=1)
    ; $iDirection - Sort direction (1=Ascending, 2=Descending) (default=descending)
    ; Requirement(s): None
    ; Return Value(s): On Success - Returns 1
    ; On Failure - Returns 0 and sets @error on errors:
    ; @error=1 - Specified object does not exist
    ; @error=2 - Starting row or column invalid
    ; @extended=0 - Starting row invalid
    ; @extended=1 - Starting column invalid
    ; @error=3 - Ending row or column invalid
    ; @extended=0 - Ending row invalid
    ; @extended=1 - Ending column invalid
    ; Author(s): SEO <locodarwin at yahoo dot com>, many thanks to DaLiMan
    ; Note(s): This sort routine will not function properly with pivot tables. Please
    ; use the pivot table sorting functions instead.
    ;
    ;===============================================================================
    Func _ExcelSort($oExcel, $sKey, $sRangeOrRowStart, $iColStart = 1, $iRowEnd = 1, $iColEnd = 1, $iDirection = 2)
    If NOT IsObj($oExcel) Then Return SetError(1, 0, 0)
    If NOT StringRegExp($sRangeOrRowStart, "[A-Z,a-z]", 0) Then
    If $sRangeOrRowStart < 1 Then Return SetError(2, 0, 0)
    If $iColStart < 1 Then Return SetError(2, 1, 0)
    If $iRowEnd < $sRangeOrRowStart Then Return SetError(3, 0, 0)
    If $iColEnd < $iColStart Then Return SetError(3, 1, 0)
    $oExcel.Range($oExcel.Cells($sRangeOrRowStart, $iColStart), $oExcel.Cells($iRowEnd, $iColEnd)).Sort _
    ($oExcel.Range($sKey), $iDirection)
    Else
    $oExcel.Range($sRangeOrRowStart).Sort ($oExcel.Range($sKey), $iDirection)
    EndIf
    Return 1
    EndFunc ;==>_ExcelSort

    [/autoit]
  • Excel: SVERWEIS/ VERWEIS-Alternative

    • sc4ry
    • 13. Januar 2010 um 16:48

    Hi Alina, danke für deine Antwort.
    Den Schreibschutz per VBA zu verstärken, daran habe ich auch schon gedacht. werd ich mir auf jeden fall mal angucken.

    aktuell rettet mich das aber nicht vor manuellem aufwand. wenn-dann halte ich für ziemlich ungeeignet, wenn überhaupt möglich. wieviele formeln müsste ich schreiben, damit er per wenn-dann von A28 bis Z71 prüft =)

    da müsste schon ne matrix-formel her ... aber irgendwie hat dieses problem wohl noch keiner gehabt, dass es da nix für gibt =)

  • _ExcelSort

    • sc4ry
    • 13. Januar 2010 um 09:54

    Hiho,

    ich habe ein Prob mit folgender Funktion. Diese bricht immer ab (liegt aber an der Func selber, nicht am Aufruf). Kann mir wer sagen, wie man das richten könnte?

    Also ich habe nur die Funktion ins Script kopiert:

    Fehlermeldung ist:

    [autoit]

    T:\02 - Statistics\FTE\Monthly Reporting\Analyse Master Verknüpfung\Merge_&_Harmonize\MaH.au3 (345) : ==> The requested action with this object has failed.:
    $oExcel.Range($oExcel.Cells($sRangeOrRowStart, $iColStart), $oExcel.Cells($iRowEnd, $iColEnd)).Sort ($oExcel.Range($sKey), $iDirection)
    $oExcel.Range($oExcel.Cells($sRangeOrRowStart, $iColStart), $oExcel.Cells($iRowEnd, $iColEnd)).Sort ($oExcel.Range($sKey)^ ERROR

    [/autoit]

    Script ist:

    [autoit]

    ;===============================================================================
    ;
    ; Description: Performs a simplified sort on a range.
    ; Syntax: _ExcelSort($oExcel, $sKey, $sRangeOrRowStart, $iColStart = 1, $iRowEnd = 1, $iColEnd = 1, $iDirection = 2)
    ; Parameter(s): $oExcel - An Excel object opened by a preceding call to _ExcelBookOpen() or _ExcelBookNew()
    ; $sKey - The key column or row to sort by (a letter for column, a number for row)
    ; $sRangeOrRowStart - Either an A1 range, or an integer row number to start from if using R1C1
    ; $iColStart - The starting column for the number format(left) (default=1)
    ; $iRowEnd - The ending row for the number format (bottom) (default=1)
    ; $iColEnd - The ending column for the number format (right) (default=1)
    ; $iDirection - Sort direction (1=Ascending, 2=Descending) (default=descending)
    ; Requirement(s): None
    ; Return Value(s): On Success - Returns 1
    ; On Failure - Returns 0 and sets @error on errors:
    ; @error=1 - Specified object does not exist
    ; @error=2 - Starting row or column invalid
    ; @extended=0 - Starting row invalid
    ; @extended=1 - Starting column invalid
    ; @error=3 - Ending row or column invalid
    ; @extended=0 - Ending row invalid
    ; @extended=1 - Ending column invalid
    ; Author(s): SEO <locodarwin at yahoo dot com>, many thanks to DaLiMan
    ; Note(s): This sort routine will not function properly with pivot tables. Please
    ; use the pivot table sorting functions instead.
    ;
    ;===============================================================================
    Func _ExcelSort($oExcel, $sKey, $sRangeOrRowStart, $iColStart = 1, $iRowEnd = 1, $iColEnd = 1, $iDirection = 2)
    If NOT IsObj($oExcel) Then Return SetError(1, 0, 0)
    If NOT StringRegExp($sRangeOrRowStart, "[A-Z,a-z]", 0) Then
    If $sRangeOrRowStart < 1 Then Return SetError(2, 0, 0)
    If $iColStart < 1 Then Return SetError(2, 1, 0)
    If $iRowEnd < $sRangeOrRowStart Then Return SetError(3, 0, 0)
    If $iColEnd < $iColStart Then Return SetError(3, 1, 0)
    $oExcel.Range($oExcel.Cells($sRangeOrRowStart, $iColStart), $oExcel.Cells($iRowEnd, $iColEnd)).Sort _
    ($oExcel.Range($sKey), $iDirection)
    Else
    $oExcel.Range($sRangeOrRowStart).Sort ($oExcel.Range($sKey), $iDirection)
    EndIf
    Return 1
    EndFunc ;==>_ExcelSort

    [/autoit]
  • Problem mit CRC32...

    • sc4ry
    • 12. Januar 2010 um 23:00

    hätte sonst noch das hier im angebot, funzt auch definitiv, einziges prob am grundscript: dateien mit leerzeichen werden falsch berechnet, bzw garnicht.

    hab aber nen lösungsansatz gepostet, müsste man dann noch ersetzen:

    http://www.autoitscript.com/forum/index.php?showtopic=65141&st=0&p=484600&hl=sfv&fromsearch=1&#entry484600

  • Excel: SVERWEIS/ VERWEIS-Alternative

    • sc4ry
    • 12. Januar 2010 um 19:05

    Hiho,

    ich habe ein Prob bei Excel und finde im Netz leider auch keine entsprechende Hilfe.
    Mein Problem ist folgendes:

    Es wird eine Excel-Datei verschickt, in der div. Zellen ausgefüllt werden sollen. Da dies später die Grundlage für ein Reporting wird, ist hier durch Daten-Gültigkeit eingeschränkt, was eingegeben werden kann. Leider lässt sich dies leicht mit Copy&Paste umgehen ... was auch einige machen. Das bedeutet für mich, ich muss die Daten vorher wieder auf 1 Nenner bringen, damit das Reporting richtig funktioniert.

    Ich habe nun schonmal 1 Datei gebastelt, in der in Spalte 1 immer der RICHTIGE Begriff steht, der hätte verwendet werden müssen. In den (Zeilen)-Zellen dahinter trage ich die möglichen Begriffe ein, die dafür stehen (wenigstens benutzen die meisten Leute diese immer wiederkehrend.

    Jetzt suche ich eine Möglichkeit, die diese Matrix aus mehreren Spalten und Zeilen nach Begriff x durchsucht und mir aus dieser Zeile den Wert der 1 Spalte zurückgibt. Hört sich einfach an, scheint es aber nicht zu sein.

    Prob Sverweis: der Sverweis durchsucht ja nur die 1. Spalte nach Begriff x ... bringt mir also nichts
    Prob Verweis: hier gibt es 2 möglichkeiten, diese funktion anzuwenden.
    1. Matrix: das funktioniert nur, wenn ich eine Zeile oder Spalte auswähle, aber nicht eine richtige Matrix (A:Z)
    2. Vektor: hier kann ich leider nicht auf FALSCH einschränken, so dass ich nicht das gewünschte ergebniss erhalten (ich suche nach PL, warum auch immer kommt dort PHILLIPINEN raus, weiter unten würde aber der richte Eintrag PL kommen)

    Was gibt es noch für Möglichkeiten? Ich habe mal Sverweis + Bereich.verschieben probiert, aber so richtig komme ich damit nicht klar.

    Also nochmal kurz: In Spalte A steht der Wert, den ich brauche, in den Spalten B - Z ist ein Wert zu suchen. Aus der gefunden Zeile brauche ich Spalte A.

  • _ExcelReadSheetToArray

    • sc4ry
    • 5. Januar 2010 um 10:32

    hab die Version mit @AutoitVersion abgefragt ...
    aber hier stehts auch drin: >Running:(3.3.0.0):C:\Program Files\AutoIt3\autoit3.exe "C:\Program Files\AutoIt3\Examples\Helpfile\_ExcelReadSheetToArray.au3"

    hab die Zeile in der Excel.au3 geändert ... es erscheint aber immer noch kein Array (selbst wenn ich die Zeile komplett rausnehme, es kommt auch kein error) ... sehr strange.

    PS: Excel.au3 über Open Include geöffnet, also auch die richtige au3

  • Excel.au3

    • sc4ry
    • 4. Januar 2010 um 23:07

    ah super... das sieht gut aus, dank euch beiden =)

  • Excel.au3

    • sc4ry
    • 4. Januar 2010 um 22:38

    Hi,

    ich muss mehrere Excel-Sheets in eine Datei kopieren, darunter eine Spalte die Datümer enthält (31.12.2009).
    In der neuen Datei kommt aber folgendes an:

    zu lesen: 2,00912E+13
    wirklicher "Text" in Zelle: 20091231000000

    wie bekomm ich es hin, dass ich das datum erhalten, oder einen wert, den ich zu einem datum formatieren kann?
    mit dem oben gehts nicht, da kommt immer #####

  • _ExcelReadSheetToArray

    • sc4ry
    • 4. Januar 2010 um 22:36

    Hi,

    ich habe versucht, die oben genannte Funktion in einem Script zu nutzen ... nachdem aber nix funktioniert hat, habe ich einfach mal das bsp-script aus der hilfe ausgeführt ... und sieh da, auch da passiert nix.

    liegts an meinem rechner/ excel oder ist ein fehler im script?

    er erstellt ein excelfile, füllt ein paar zellen mit zeichen und dann kommt direkt die msgbox (kein arraydisplay) ... was bedeutet, hier funzt die funktion auch nicht.

    Win XP Prof SP3 32Bit
    AutoIt 3.3.0.0
    Excel 2003 SP2

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™