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

Beiträge von BugFix

  • Hilfe bei StringRegExp()

    • BugFix
    • 7. November 2008 um 21:53

    Dann mach es so:

    [autoit]

    #include<array.au3>
    $string = '<td style="vertical-align: top;"><font size="-1">NAME,VORNAME<br>'
    $ret = StringRegExp($string, '(?<="-1"\>).*(?=\<br\>)', 1)
    _ArrayDisplay($ret)

    [/autoit]
  • Was nehme ich am Besten um einen Speicherpfad zu wählen?

    • BugFix
    • 7. November 2008 um 18:46

    _FileSelectFolder()

  • DropDown Menü für Farben

    • BugFix
    • 7. November 2008 um 14:40

    Das ist kein Problem mit den UDF der GuiComboBoxEx.au3.
    Du erstellst eine Imagelist mit den Farben und weist den Einträgen die entsprechenden Images zu.
    Schau dir mal die Bsp. dort an.

  • bestimmte Dateiinhalte löschen ?

    • BugFix
    • 7. November 2008 um 14:23

    "Local" in Zeile 19 kannst du löschen, ich hatte es vergessen als ich die Deklarationen an den Anfang verschoben hab ;)

    Um alle Unterordner ab Pfad zu durchsuchen, mußt du dir eine rekursive Filelist erstellen. Nutze mal die SuFu - dazu hab u. a. ich eine UDF erstellt.

  • Falsche Eingaben abfangen

    • BugFix
    • 7. November 2008 um 14:06

    Wenn du per Button die GUI_2 aufrufst, kannst du doch als erstes eine Prüffunktion für Inhalte der Inputs durchführen. Nur wenn die OK gibt, zeigst du GUI_2, sonst brichst du ab und bleibst somit auf GUI_1.

  • Variable in einer Func speichern und diese ändern

    • BugFix
    • 7. November 2008 um 13:57

    Um einen Wert zu switchen, bietet sich BitXOr() an:

    [autoit]

    Local $val = 0

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

    ConsoleWrite(_switch($val) & @CRLF)
    ConsoleWrite(_switch($val) & @CRLF)
    ConsoleWrite(_switch($val) & @CRLF)

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

    Func _switch(ByRef $VAR)
    $VAR = BitXOR($VAR, 1)
    Return $VAR
    EndFunc

    [/autoit]
  • Mehrere Ordner auswählen

    • BugFix
    • 7. November 2008 um 13:38

    Stimmt, mit FileSelectFolder() läßt sich nur ein Ordner wählen.
    Aber wenn du mehrere möchtest, kannst du den Dialog ja in einer Schleife aufrufen und erst mit Abbruch ohne Auswahl wird diese beendet:

    [autoit]

    Local $arFolder[100], $i = 0, $path = @MyDocumentsDir
    While True
    $arFolder[$i] = FileSelectFolder("Ordner auswählen", $path)
    If @error Then ExitLoop
    $i += 1
    WEnd
    ReDim $arFolder[$i+1]

    [/autoit]
  • bestimmte Dateiinhalte löschen ?

    • BugFix
    • 7. November 2008 um 13:26

    Was soll dieses Array NewFile nützen??

    Spoiler anzeigen
    [autoit]

    #include <file.au3>
    #Include <Array.au3>
    #include "_Array2DEmptyDel.au3"

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

    Local $folder, $filesinpath, $aFile
    While True
    $folder = FileSelectFolder("Ordner auswählen","c:\admin_V8\config\project_config\users\")
    If @error Then
    If MsgBox(262180,"Achtung!","Es wurde kein Ordner gewählt." & @CRLF & "Soll das Programm beendet werden?") = 6 Then Exit
    Else
    ExitLoop
    EndIf
    WEnd

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

    $filesinpath = _FileListToArray($folder, "*.ucf", 1)
    If @error Then Exit MsgBox(262192,"Achtung!","Der gewählte Ordner enthält keine Dateien!")
    ;~ _ArrayDisplay($filesinpath)

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

    Local

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

    For $i = 1 To UBound($filesinpath)
    If Not _FileReadToArray( $folder & "\" & $filesinpath[$i], $aFile) Then ContinueLoop
    For $k = 1 To UBound($aFile) -1
    If StringRegExp($aFile[$k], '(MS_)(MDL(APPS)?|DGNAPPS)') Then $aFile[$k] = ''
    Next
    _Array2DEmptyDel($aFile)
    _FileWriteFromArray($folder & "\clean_" & $filesinpath[$i], $aFile, 1)
    ; hab hier mal einen anderen Dateinamen verwendet um das Original nicht zu überschreiben
    Next

    [/autoit]
  • FTP-Server Frage!

    • BugFix
    • 6. November 2008 um 22:41

    User wird angenommen (OK)
    Passwort aber nicht (authentification failed)

    Also ist das Passwort falsch, oder wird falsch übermittelt.

  • Codierer Ultra 2008

    • BugFix
    • 6. November 2008 um 22:35

    Ich glaube, du mißverstehst den Sinn des Skript-Forums.
    Es geht hier nicht darum kompilierte Dateien zu posten. Hier wird Skriptcode allen zugänglich dargestellt.
    Oder gehörst du zu den Menschen, die fremde exe-Files ausführen? :wacko:
    Außerdem wäre es ratsam zu erklären, was das Skript den eigentlich vollbringt.

  • bestimmte Dateiinhalte löschen ?

    • BugFix
    • 6. November 2008 um 22:28

    Hi,
    es ist schon alles vorbereitet, du mußt die Teile nur zusammenfügen.

    Diese Lösung:

    [autoit]

    If StringInStr($aFile[$i],"MS_MDLAPPS") Or StringInStr($aFile[$i],"MS_MDL") Or StringInStr($aFile[$i],"MS_DGNAPPS") Then ContinueLoop

    [/autoit]

    ist nicht zu empfehlen, da sie der gestellten Bedingung nicht entspricht. Es wurde gesagt, dass nur wenn eine Zeile mit den benannten Begriffen beginnt, diese gelöscht werden soll. StringInStr() prüft nur auf Vorkommen irgendwo im String.
    Deshalb meine Variante:

    [autoit]

    If StringRegExp($arFile[$i], '(MS_)(MDL(APPS)?|DGNAPPS)') Then $arFile[$i] = ''

    [/autoit]
  • GUI Input

    • BugFix
    • 6. November 2008 um 20:26

    Und?...warum behebst du den Syntaxfehler nicht? Steht doch glasklar lesbar drin, was der Fehler ist:
    Unausgeglichene Klammersetzung!

  • GUI Input

    • BugFix
    • 6. November 2008 um 14:40

    Weil wir noch immer hoffen, dass du mal einen kurzen Blick in die Hilfe wirfst :whistling:
    Dort findest du deine Fragen ausgiebig mit Beispiel erläutert.

  • bestimmte Dateiinhalte löschen ?

    • BugFix
    • 6. November 2008 um 13:05

    Hi,
    so gehts in der einzelnen Datei. Du kannst ja alle Dateien vorher in ein Array einlesen und dann hiermit abarbeiten:

    Spoiler anzeigen
    [autoit]

    #include<array.au3>
    #include<file.au3>

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

    ;~ Local $arFile, $Path = 'Pfad'
    ;~ _FileReadToArray($Path, $arFile)
    ;~ If Not IsArray($arFile) Then Exit MsgBox(0, '', 'Datei konnte nicht gelesen werden.')

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

    ; ##### zum Test ######
    Local $arFile[9] = [8, _
    'MS_MDLAPPS > C:/Programme/MicroStationV8/Workspace/standards/mdlapps/intelnt/', _
    'MS_MDL > D:/prj/25808061/prcfg/mdl/', _
    'MS_DGNAPPS > sscloud', _
    'MS_MDL = C:/Programme/MicroStationV8/Program/MicroStation/FeatureModeling/features/', _
    'MS_DGNAPPS > $(SR_ADMIN)user_config/$(_USTN_USERNAME)/sscloud.ma', _
    'bjklllm', _
    'khglbhötji', _
    'MMMGGG']
    ; ######################

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

    For $i = 1 To UBound($arFile) -1
    If StringRegExp($arFile[$i], '(MS_)(MDL(APPS)?|DGNAPPS)') Then
    $arFile[$i] = ''
    $arFile[0] -= 1
    EndIf
    Next
    _Array2DEmptyDel($arFile)
    _ArrayDisplay($arFile)

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

    ;~ _FileWriteFromArray('Ausgabedatei', $arFile, 1)

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

    ;----------------------------------------------------------------------------------------------------------------------
    ; Function _Array2DEmptyDel(ByRef $avArray [, $Col=0])
    ;
    ; Description Delete empty Array elements
    ; Delete all emty Rows or all empty Columns
    ; Works also with 1D-Array (only Rows)
    ;
    ; Parameter $avArray Given Array
    ; optional $Col set 1 to delete empty Columns; default is 0 to delete empty Rows
    ;
    ; Return Succes 0 ByRef the given Array without empty Elements, resized
    ; Failure 1 and set @error = 1
    ;
    ; Author BugFix ([email='bugfix@autoit.de'][/email])
    ;----------------------------------------------------------------------------------------------------------------------
    Func _Array2DEmptyDel(ByRef $avArray, $Col=0)
    If ( Not IsArray($avArray) ) Then Return SetError(1,0,1)
    Local $i, $k, $notEmpty
    Local $UBound2nd = UBound($avArray,2)
    If @error = 2 Then
    Local $arTMP[1]
    For $i = 0 To UBound($avArray)-1
    If StringLen($avArray[$i] > 0) Then
    If StringLen($arTMP[UBound($arTMP)-1]) = 0 Then
    $arTMP[UBound($arTMP)-1] = $avArray[$i]
    Else
    ReDim $arTMP[UBound($arTMP)+1]
    $arTMP[UBound($arTMP)-1] = $avArray[$i]
    EndIf
    EndIf
    Next
    Else
    If $Col = 0 Then
    Local $arTMP[1][$UBound2nd], $val, $len
    For $i = 0 To UBound($avArray)-1
    $val = ''
    For $k = 0 To $UBound2nd-1
    $val &= $avArray[$i][$k]
    Next
    If StringLen($val) > 0 Then
    $len = 0
    For $k = 0 To UBound($arTMP,2)-1
    $len &= StringLen($arTMP[UBound($arTMP)-1][$k])
    Next
    If $len = 0 Then
    For $k = 0 To $UBound2nd-1
    $arTMP[UBound($arTMP)-1][$k] = $avArray[$i][$k]
    Next
    Else
    ReDim $arTMP[UBound($arTMP)+1][$UBound2nd]
    For $k = 0 To $UBound2nd-1
    $arTMP[UBound($arTMP)-1][$k] = $avArray[$i][$k]
    Next
    EndIf
    EndIf
    Next
    Else
    Local $arTMP[UBound($avArray)][1], $val, $len
    For $k = 0 To $UBound2nd-1
    $val = ''
    $notEmpty = 0
    For $i = 0 To UBound($avArray)-1
    $val &= $avArray[$i][$k]
    If StringLen($val) > 0 Then
    $notEmpty = 1
    ExitLoop
    EndIf
    Next
    If $notEmpty = 1 Then
    $len = 0
    For $i = 0 To UBound($arTMP)-1
    $len &= StringLen($arTMP[$i][UBound($arTMP,2)-1])
    Next
    If $len = 0 Then
    For $i = 0 To UBound($avArray)-1
    $arTMP[$i][0] = $avArray[$i][$k]
    Next
    Else
    ReDim $arTMP[UBound($avArray)][UBound($arTMP,2)+1]
    For $i = 0 To UBound($avArray)-1
    $arTMP[$i][UBound($arTMP,2)-1] = $avArray[$i][$k]
    Next
    EndIf
    EndIf
    Next
    EndIf
    EndIf
    $avArray = $arTMP
    Return 0
    EndFunc ;==>_Array2DEmptyDel

    [/autoit]
  • ArrayMore.au3

    • BugFix
    • 5. November 2008 um 21:48

    So, nach langer Zeit mal wieder was Neues:

    _Array2DMinMax()
    - Ermittelt den Min- oder Maxwert in einem Array
    - Vergleich in einer oder allen Spalten
    - Rückgabe Array mit [Wert,Index]

    Werde es bei Gelegenheit in die Sammlung einfügen.

    Spoiler anzeigen
    [autoit]

    ;==================================================================================================
    ; Function Name: _Array2DMinMax(ByRef $ARRAY [, $MAX=0 [, $iCol=0 [, $sDelim=';']]])
    ; Description:: gibt den minimalen od. maximalen Wert eines 1D/2D-Array zurück
    ; Überprüfung einer oder aller Spalten
    ; Parameter(s): $ARRAY das zu prüfende Array
    ; $MAX 0 = Minwert (Standard); 1 = Maxwert
    ; $iCol SpaltenIndex 0 = Standard
    ; -1 = alle Spalten werden geprüft
    ; $sDelim Trennzeichen f. Indexwerte, Standard ';'
    ; mit 'Default' Zeichen von Opt('GUIDataSeparatorChar')
    ; Return Value(s): Erfolg Array[0] = Max/Min-Wert; Array[1] = Index(Zeile [, Spalte])
    ; Fehler -1 @error = 1 kein Array übergeben
    ; @error = 2 $iCol überschreitet UBound,2
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================
    Func _Array2DMinMax(ByRef $ARRAY, $MAX=0, $iCol=0, $sDelim=';')
    If Not IsArray($ARRAY) Then Return SetError(1,0,-1)
    Local $Ub2nd = UBound($ARRAY, 2)-1, $arOut[2] = [0]
    If $MAX <> 0 Then $MAX = 1
    If $sDelim = Default Then $sDelim = Opt('GUIDataSeparatorChar')
    If @error Then
    For $i = 0 To UBound($ARRAY) -1
    If $MAX = 1 Then
    If Number($ARRAY[$i]) > $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i])
    $arOut[1] = $i
    EndIf
    Else
    If $i = 0 Then
    $arOut[0] = Number($ARRAY[$i])
    $arOut[1] = $i
    EndIf
    If Number($ARRAY[$i]) < $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i])
    $arOut[1] = $i
    EndIf
    EndIf
    Next
    Else
    If $iCol > $Ub2nd Then Return SetError(2,0,-1)
    If $iCol < -1 Then $iCol = -1
    If $iCol = -1 Then
    For $i = 0 To UBound($ARRAY) -1
    For $k = 0 To $Ub2nd
    If $MAX = 1 Then
    If Number($ARRAY[$i][$k]) > $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i][$k])
    $arOut[1] = $i & $sDelim & $k
    EndIf
    Else
    If $i = 0 Then
    $arOut[0] = Number($ARRAY[$i][$k])
    $arOut[1] = $i & $sDelim & $k
    EndIf
    If Number($ARRAY[$i][$k]) < $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i][$k])
    $arOut[1] = $i & $sDelim & $k
    EndIf
    EndIf
    Next
    Next
    Else
    For $i = 0 To UBound($ARRAY) -1
    If $MAX = 1 Then
    If Number($ARRAY[$i][$iCol]) > $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i][$iCol])
    $arOut[1] = $i & $sDelim & $iCol
    EndIf
    Else
    If $i = 0 Then
    $arOut[0] = Number($ARRAY[$i][$iCol])
    $arOut[1] = $i & $sDelim & $iCol
    EndIf
    If Number($ARRAY[$i][$iCol]) < $arOut[0] Then
    $arOut[0] = Number($ARRAY[$i][$iCol])
    $arOut[1] = $i & $sDelim & $iCol
    EndIf
    EndIf
    Next
    EndIf
    EndIf
    Return $arOut
    EndFunc ;==>_Array2DMinMax

    [/autoit]
  • Array: incorrect number of subscripts

    • BugFix
    • 4. November 2008 um 23:06
    Zitat von GrungeRocker

    Ich habe NIE verstanden was UBound macht...

    Gar nicht so schwer, sagt eigentlich der Name schon.
    UpperBound - Obergrenze
    UBound($Array, 0) = Anzahl der Dimensionen
    UBound($Array, 2) = Anzahl Elemente in 2.ter Dimension
    UBound($Array, n) = Anzahl Elemente in n.ter Dimension

  • Array: incorrect number of subscripts

    • BugFix
    • 4. November 2008 um 22:51

    Sag das doch gleich :D

    [autoit]

    $Dimension = UBound($array, 0)
    If $Dimension = 1 Then
    ; 1D- Array
    ElseIf $Dimension = 2 Then
    ; 2D-Array
    EndIf

    [/autoit]
  • Array: incorrect number of subscripts

    • BugFix
    • 4. November 2008 um 22:18

    Da ich nicht weiß, woraus du das Array erzeugst, kann ich schlecht sagen warum die Fehlermeldung kommt. Es sieht fast so aus, als ob du auf eine nicht existierende Dimension zugreifen willst.

  • Mein Internet ist sau langsam

    • BugFix
    • 3. November 2008 um 22:05

    Freut mich, dass es dir geholfen hat.
    Ist aber eher zufällig, dass ich dazu was sagen konnte. Bin auf Dienstreisen häufig in einem Hotel, dass genau diese Probleme hat(te). ;)
    Somit konnte ich mich zwangsfreiwillig damit befassen. :D

  • GUI-Problem mit Arrays und StrigProblem

    • BugFix
    • 3. November 2008 um 20:04

    Möglich ist es - aber welchen Sinn soll das haben? Eine Variable muß einen fixen Namen haben, damit du drauf zugreifen kannst. Nur der Inhalt ist variabel. Wenn du einen dynamischen Variablennamen hast, kannst du nicht mehr draufzugreifen.

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™