Kann ich den Löschantrag irgendwo rückgängig machen?
Beiträge von horphi
-
-
warum, ist dieser Post hilfreich? Eher nicht...
-
Genau in dem Moment hab ichs gefunden... DANKE ALPINES
-
Hallo,
ich durchsuche in meinem Skript 2Spaltige-Tabellen und und wenn ein Wertepaar gefunden wird, möchte ich aus der Suchfunktion wieder in die Hauptschleife zurück und den nächsten Wert zum suchen anstoßen.
Wie komme ich aus der If Abfrage komplett aus der Funktion raus zurück in die For-Schleife?AutoIt
Alles anzeigenFor $i = 0 to $aRaySize _deepSearchcompareParallel($aRay, $sRayStrVorg, $sRayStrNachf) ; STARTE die SUCHE If $deepSearchcompareParallel = 1 Then ConsoleWrite('Ergebnis --> ein Duplikat gefunden: DP1 = ' & $deepSearchcompareParallel & @CRLF) EndIf If $i = $aRaySize Then ExitLoop EndIf $deepSearchcompareParallel = 0 Next Func _deepSearchcompareParallel(ByRef $aRetArrayloop, ByRef $sRayStrVorgloop, ByRef $sRayStrNachfloop) ;hier wird untersucht, ob der Vor und Nachfolger jeweils in dem Array existieren For $i = 0 To $iRowi $sRowSingleV ;Wert1 ausgeben For $j = 0 To $iRowj $sRowSingleN ;Wert2 ausgeben If $sRowSingleV = $sRowSingleN Then Global $deepSearchcompareParallel = 1 ExitLoop ;>>>>>>>>>>>>>>>>>>>>HIER MÖCHTE ICH AUS DER FUNKTION AUSSTEIGEN UND IN DIE FOR-SCHLEIFE ZURÜCK WENN DAS WERTEPAAR ÜBEREINSTIMMT<<<<<<<<<<<<<<<<<<<<<<<<< EndIf Next Next EndFunc
Danke und Gruß,
horphi
-
-
Hi,
haben wir sowas irgendwo als UDF?
AutoIt
Alles anzeigenFunc _ArrayReplace(ByRef $aRepArray, $vValue, $iStart = 0, $iEnd = 0, $iSubItem = 0, $vValue1 = '"') #cs Parameters $aRepArray The array to replace $vValue replace value $iStart [optional] Index of array to start row replace $iEnd [optional] Index of array to end row replace $iSubItem [optional] Sub-index to search on in 2D arrays $vValue1 [optional] Text limiter for special strings #ce ; Default values If $iStart = Default Then $iStart = 0 If $iEnd = Default Then $iEnd = 0 If $iSubItem = Default Then $iSubItem = 0 If $vValue1 = Default Then $vValue1 = '"' If StringLeft($aRepArray[$iStart][$iSubItem], 1) = '"' Then For $i = $iStart To $iEnd $aRepArray[$i][$iSubItem] = $vValue1 & $vValue & $vValue1 Next Else For $i = $iStart To $iEnd $aRepArray[$i][$iSubItem] = $vValue Next EndIf EndFunc ;==>_ArrayReplace
-
Lieber nicht, habs über insert und push etc versucht...vergebens...
-
.... man man man wie peinlich...
Ich versuchs mit allenmöglichen umwegen und dabei ist es sooooo einfach.....bitte lösch den Thread...
-
Hallo,
irgendwie krieg ich es nicht auf die Kette.
Wie kann ich in einem gegebenen 2D Array eine bestimmte Position mit einem neuen Wert überschreiben?
Vielen Dank und Gruß,
horphi
-
Hi
ich muss noch mal nachfragen.
Beim StringRegExp funktioniert der Ausdruck.
Wenn ich aber StringRegExpReplace benutze, wird mir der gänderte Wert und der Rest der Zeile ausgegeben.
Wie kann ich das ändern, dass der ganze geänderten outputstring = dem inputstring entsprichtg?
AutoIt$url = 'CN_OP;71507;false;"0620";"SD";0;8;;0.0;1091;1;39.0;23.4;"IM";false;1;8099;0;true;"";0.0;;;"";;"Dz";"V5";"6W";"O45";"A002";100.0;"00038.999";"P";"0";0.0;false;false;false;0.0;false;"ASSY";false;"V5";"B";279;false;"";"Type1";"";"V5";;;"";0.0;false;false;"";"";"";true' $icol = 10 $sFirst = StringRegExp ($url, '(?:[^;]*;){45}([^;]+)', 1) ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & " var: $sFirst --> " & $sFirst[0] & @LF) $sLast = StringRegExpReplace($url, '(?:[^;]*;){45}([^;]*[^;])', 'true',1) ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & " var: $sLast --> " & $sLast & @LF)
Gruß,
horphi
-
-
Hallo Alpines,
ich würde das gerne im StringRegExpReplace ausführen, da ich aus einem Textfile lese und nicht vorher einen Array erstellen möchte.
--> ich möchte hier erst den Wert NACH dem 4. Semikolon ausgegeben bekommen. Er zählt mir aber alles inkl des 4. Semikolons...
Ich weiß nicht, wie ich das ändern kann.
VG
horphi
-
Hallo,
ich hätte dazu ein Frage:
Kann man den Suchausdruck auch so anpassen, das er erst am dem 3. Punkt anfängt zu suchen und alles bis zum nächsten Punkt ausgibt?
Grüße,
horphi
-
Danke für die Rückmeldung.
Aber wie kann ich einen _arrayextract loop in einen Array halten, ohne ihn vorher in einem String zu sammeln?
Code
Alles anzeigenFor $i = 0 To $aRaySize $aRayExtrVorg2 = _ArrayExtract($aRetArray, $i, $i, 3, 4) ; der 2. Vorgänger wird genommen und gesucht $sRayStrExtr = _ArrayToString($aRayExtrVorg2, ';') $string &= $sRayStrExtr & @CRLF Next
VG
horphi
-
Hallo zusammen,
ich habe ein Suchfunktion gebastelt, mit der ich Beziehungen untersuche, die Falschen Knotenpunkte aus der Datei lösche, die Datei neu Aufbaue und wieder nach den richtigen Beziehungsknoten suche.
Dabei verfahre ich so, das ich den Array aus der Datei lese, den Wert suche, lösche und den Rest als Array wieder in die Datei schreibe.
Mein Frage: werden Tempdateien schneller gelesen und beschrieben als normale TXT Dateien?
Bsp.
Wertepaare (Vorgänger; Nachfolger) --> in einer Schleife suche ich Redundanzen und will bei Knoten die nicht in Beziehung zu dem Gesuchten Knoten stehen löschen.1;2
2;3
3;4
1;4 (der ist redundant und wird markiert)
1;6 (der läuft in einen anderen Nachfolger und soll gelöscht werden)
Danke und Gruß,horphi
-
Danke dir.
Werde ich bei Gelegenheit einarbeiten.
Viele Grüße,
horphi
-
Hallo Kanashius,
ist ja ne Top Listenbefüllung.
Frage dazu: geht das auch mit $g_idListView = _GUICtrlListView_Create()?
DAnke und Gruß,
horphi
-
Hallo @Kanashius,
was ist das für eine Funktion? Ist die in einer UDF verankert, oder von dir?
VG
horphi
-
Hallo noch mal,
nach einer Zeitmessung ist der größte Teil wie schon von @Andy vermutet in der DLLStructSetData .
Gibt es noch eine andere Listenfunktion, um aus SQLite GUI Listen zubefüllen?
Danke und Gruß,
horphi
AutoIt
Alles anzeigenFunc _GUICtrlListView_AddArray($hWnd, ByRef $aItems) Local $bUnicode = _GUICtrlListView_GetUnicodeFormat($hWnd) Local $dtStart Local $tItem = DllStructCreate($tagLVITEM) Local $tBuffer If $bUnicode Then $tBuffer = DllStructCreate("wchar Text[4096]") Else $tBuffer = DllStructCreate("char Text[4096]") EndIf DllStructSetData($tItem, "Mask", $LVIF_TEXT) DllStructSetData($tItem, "Text", DllStructGetPtr($tBuffer)) DllStructSetData($tItem, "TextMax", 4096) Local $iLastItem = _GUICtrlListView_GetItemCount($hWnd) _GUICtrlListView_BeginUpdate($hWnd) $dtStart = TimerInit() ;~ ***************************************************************************************************************************************** ;~ Zeitfresser If IsHWnd($hWnd) Then If _WinAPI_InProcess($hWnd, $__g_hLVLastWnd) Then For $iI = 0 To UBound($aItems) - 1 DllStructSetData($tItem, "Item", $iI) DllStructSetData($tItem, "SubItem", 0) DllStructSetData($tBuffer, "Text", $aItems[$iI][0]) _SendMessage($hWnd, $LVM_INSERTITEMW, 0, $tItem, 0, "wparam", "struct*") For $iJ = 1 To UBound($aItems, $UBOUND_COLUMNS) - 1 DllStructSetData($tItem, "SubItem", $iJ) DllStructSetData($tBuffer, "Text", $aItems[$iI][$iJ]) _SendMessage($hWnd, $LVM_SETITEMW, 0, $tItem, 0, "wparam", "struct*") Next Next ;~ ***************************************************************************************************************************************** $dtStart = TimerDiff($dtStart) ConsoleWrite("DLL: " & $dtStart & @CRLF) Else Local $iBuffer = DllStructGetSize($tBuffer) Local $iItem = DllStructGetSize($tItem) Local $tMemMap Local $pMemory = _MemInit($hWnd, $iItem + $iBuffer, $tMemMap) Local $pText = $pMemory + $iItem DllStructSetData($tItem, "Text", $pText) For $iI = 0 To UBound($aItems) - 1 DllStructSetData($tItem, "Item", $iI + $iLastItem) DllStructSetData($tItem, "SubItem", 0) DllStructSetData($tBuffer, "Text", $aItems[$iI][0]) _MemWrite($tMemMap, $tItem, $pMemory, $iItem) _MemWrite($tMemMap, $tBuffer, $pText, $iBuffer) If $bUnicode Then _SendMessage($hWnd, $LVM_INSERTITEMW, 0, $pMemory, 0, "wparam", "ptr") Else _SendMessage($hWnd, $LVM_INSERTITEMA, 0, $pMemory, 0, "wparam", "ptr") EndIf For $iJ = 1 To UBound($aItems, $UBOUND_COLUMNS) - 1 DllStructSetData($tItem, "SubItem", $iJ) DllStructSetData($tBuffer, "Text", $aItems[$iI][$iJ]) _MemWrite($tMemMap, $tItem, $pMemory, $iItem) _MemWrite($tMemMap, $tBuffer, $pText, $iBuffer) If $bUnicode Then _SendMessage($hWnd, $LVM_SETITEMW, 0, $pMemory, 0, "wparam", "ptr") Else _SendMessage($hWnd, $LVM_SETITEMA, 0, $pMemory, 0, "wparam", "ptr") EndIf Next Next _MemFree($tMemMap) EndIf Else Local $pItem = DllStructGetPtr($tItem) For $iI = 0 To UBound($aItems) - 1 DllStructSetData($tItem, "Item", $iI + $iLastItem) DllStructSetData($tItem, "SubItem", 0) DllStructSetData($tBuffer, "Text", $aItems[$iI][0]) If $bUnicode Then GUICtrlSendMsg($hWnd, $LVM_INSERTITEMW, 0, $pItem) Else GUICtrlSendMsg($hWnd, $LVM_INSERTITEMA, 0, $pItem) EndIf For $iJ = 1 To UBound($aItems, $UBOUND_COLUMNS) - 1 DllStructSetData($tItem, "SubItem", $iJ) DllStructSetData($tBuffer, "Text", $aItems[$iI][$iJ]) If $bUnicode Then GUICtrlSendMsg($hWnd, $LVM_SETITEMW, 0, $pItem) Else GUICtrlSendMsg($hWnd, $LVM_SETITEMA, 0, $pItem) EndIf Next Next EndIf _GUICtrlListView_EndUpdate($hWnd) EndFunc ;==>_GUICtrlListView_AddArray
-
@Andy und @Kanashius
Danke für die Hinweise. Das prüfe ich heute Abend und gebe dann Rückmeldung.
VG
horphi