Verstehe deine Aufgabenstellung nicht. Du gibst die Schritte vor - somit ist doch jeder gezwungen diesen Alghoritmus zu nehmen. Woher soll da ein eigener Algorithmus kommen?
Und "Die Frage ist nun, wie viele Schritte sind nun mindestens notwendig, um dies zu erreichen?" halte ich für falsch herum gefragt. Wichtiger wäre doch zu wissen, nach wieviel Sortierschritten ich sicher sein kann, dass der String sortiert ist - also: maximal.
Beiträge von BugFix
-
-
Warum probierst du es nicht selbst? Die Lösung findest du in meiner Funktion (.ParagraphFormat.Alignment = 1 auf eine Selection anwenden)
Also schau, wie du die von dir eingefügte Fußzeile selektierst und wende dann das obige an. -
Vielleicht kann man das Pattern auch noch effizienter gestalten.
Zumindest etwas besser lesbar. Das "-" brauchst du nicht maskieren und statt der horizontalen Spaces kannst du auch das Leerzeichen selbst verwenden, da dieses ja eindeutig ist.
[autoit]StringRegExpReplace($s1 & ' -- ' & $s2, '^( -- )|( -- )$', '')
[/autoit] -
-
Dazu müsste ich alles zwischen ">" und "</" kriegen.
Dafür findest du sogar fertige Funktionen hier im Forum...
-
Doc oder Docx änder nichts am Objeckt Modell.
Trotzdem ist es verwunderlich, dass die von mir gepostete Funktion in Office 2000 tadellos funktioniert und in einer neueren Version nicht. -
Ich habe da eine Vermutung. Ich verwende ja noch "echtes" Office. Du hast ja das docx- Gedöns. Ich glaube mich zu erinnern, dass die Formatierung dort per xml geregelt wird (deshalb das x). Wäre also nicht verwunderlich, wenn sich dadurch auch der Objektzugriff geändert hat. Aber, wie gesagt, nur eine Vermutung.
-
OK, habs dir gebastelt.
Spoiler anzeigen
[autoit]Func _WordDoc_FooterSetAutoText($sPath, $sAutoText="Seite X von Y", $iAlign=2, $fVisible=0, $fSave=1, $fQuit=1) ; iAlign: 0=links, 1=center, 2=rechts
[/autoit]
If not FileExists($sPath) Then Return SetError(1,0,0)
If $fQuit = 1 Then $fSave = 1
Local Const $wdHeaderFooterPrimary = 1
Local $oWord, $fCreated = 0
$oWord = ObjGet($sPath, "Word.Application")
If @error Then
$oWord = ObjCreate("Word.Application")
$fCreated = 1
EndIf
$oWord.Visible = $fVisible
If $fCreated Then $oWord.Documents.Open($sPath)
Local $Footers = $oWord.ActiveDocument.Sections(1).Footers($wdHeaderFooterPrimary)
$Footers.Range.Delete
$Footers.Range.Select
With $oWord.Application.Selection
$oWord.NormalTemplate.AutoTextEntries($sAutoText).Insert(.Range, True)
.ParagraphFormat.Alignment = $iAlign
EndWith
$oWord.Application.DisplayAlerts = False
If $fSave Then $oWord.ActiveDocument.Save
If $fQuit Then $oWord.Quit
Return
EndFunc -
Das größte Problem habe ich mit dem Footer
Dafür hatte ich vor einiger Zeit mal eine Funktion erstellt.Spoiler anzeigen
[autoit];===============================================================================
[/autoit]
; Function Name....: _WordDoc_FooterChange
; Description......: Ändert in einem Worddokument die Fußzeile
; Parameter(s).....: $sPath Pfad zum Word Dokument
; $sFooterNew Die neue Fußzeile
; optional $fVisible Wordfenster sichtbar, Standard=0 (Nein)
; optional $fSave Speichern der Änderung? Standard=1 (Ja)
; optional $fQuit Word beenden? Standard=0 (Nein), mit "1" wird auch $fSave=1 gesetzt
; Return Value(s)..: Erfolg Den alten Inhalt der Fußzeile
; Fehler @error = 1 - Dateipfad existiert nicht
; Note.............: Falls Word bereits geöffnet ist, wird in dieser Instanz gearbeitet, anderenfalls wird eine neue Instanz erstellt.
; Author(s)........: BugFix ( [email='bugfix@autoit.de'][/email] )
;===============================================================================
Func _WordDoc_FooterChange($sPath, $sFooterNew, $fVisible=0, $fSave=1, $fQuit=0)
If not FileExists($sPath) Then Return SetError(1,0,0)
If $fQuit = 1 Then $fSave = 1
Local Const $wdHeaderFooterPrimary = 1
Local $sFooterOld, $oWord, $fCreated = 0
$oWord = ObjGet($sPath, "Word.Application")
If @error Then
$oWord = ObjCreate("Word.Application")
$fCreated = 1
EndIf
$oWord.Visible = $fVisible
If $fCreated Then $oWord.Documents.Open($sPath)
$sFooterOld = $oWord.ActiveDocument.Sections(1).Footers($wdHeaderFooterPrimary).Range.Text
$oWord.ActiveDocument.Sections(1).Footers($wdHeaderFooterPrimary).Range.Text = $sFooterNew
$oWord.Application.DisplayAlerts = False
If $fSave Then $oWord.ActiveDocument.Save
If $fQuit Then $oWord.Quit
Return $sFooterOld
EndFunc ;==>_WordDoc_FooterChange -
ich würde wirklich gerne mal eine Frau mit einem Monokel sehen
Kein Problem, hier ein Foto vom berühmten Fotografen Helmut Newton. (Die Dame trägt übrigens nur Monokel
) -
wenn ihr da einen besonderen Favoriten habt.
Da wirst du von 10 Leuten auch 10 verschiedene Antworten bekommen.
Ich verwende Comodo Internet Security. -
Ausnahmen eingetragen, wie in der Hilfe beschrieben?
ZitatAusnahmen
Hier können Sie festlegen, welche Dateien oder Bereiche nicht überprüft werden sollen. Bitte beachten Sie, dass diese Einstellung nur für manuelle und geplante Prüfungen, aber nicht für andere Schutzmodule gilt.Möchten Sie die Dateien auch von weiteren avast! Schutzmodulen ausschließen, inkl. manueller und geplanter Prüfungen, sollten Sie diese Dateien oder Bereiche in den Einstellungen festlegen.
Möchten Sie eine bestimmte Datei oder einen Bereich ausschließen, klicken Sie auf <Pfad eingeben> und tragen Sie den Datei- oder Bereichsnamen ein, oder markieren Sie das Kontrollkästchen neben der ausgeschlossenen Datei und bestätigen Sie mit “Ok”.
Möchten Sie ein Verzeichnis mitsamt seinen Unterverzeichnissen ausschließen, fügen Sie “\*” am Ende des Verzeichnisnamens ein, z.B. C:\Windows\*.
-
Ergebisstechnisch irgendwo ein Unterschied???
[autoit]
Na aber sicher!
Round() rundet (richtig) und StringFormat verwendet Int().$i = 3.155
[/autoit]
ConsoleWrite(Round($i,2) & @LF)
ConsoleWrite(StringFormat('%0.2f', $i) & @LF)Output:
-
Was macht ihr denn für Verrenkungen zum Runden? Round und fertig ist die Laube.
-
Wäre aber für sein Vorhaben nicht ohne Anpassung zu benutzen
Schon klar
- sollte ja auch keine Aktion "Sonne - Arm" werden. 
-
He,
heutzutage sind Brillen doch weniger Sehhilfe als modisches Accessoire. Das bessere Sehen bekommst du zum modischen Chick dazu.
Ich persönlich würde freiwillig niemals Kontaktlinsen tragen, bin mit Brille sehr zufrieden.

-
-
Eigentlich brauche ich genau diese Box
Na und was ist an dieser Box sooo anders im Vergleich zu der mit GUICtrlCreateCombo erstellten?
Falls du ein Handle benötigst, bekommst du das ebenso von der Box-ID (GuiCtrlGetHandle) und kannst mit diesem Handle dann die Funktionen der ..Ex ebenso nutzen.Aber ich habe doch auch beschrieben WIE es mit der ..Ex machbar ist:
Zitatdann musst du die Combo verstecken, wenn nicht das dazugehörige Tabsheet aktiv ist.
-
und möchte die Combobox nur auf dem ersten Tab angezeigt bekommen.
Die ..ComboBoxEx-Funtion erzeugt keine ID und passt somit nicht in die Struktur des Tab-Ctrl. Wenn du unbedingt mit dieser Funktion arbeiten willst (warum benutzt du nicht GUICtrlCreateCombo? ) , dann musst du die Combo verstecken, wenn nicht das dazugehörige Tabsheet aktiv ist. -
Funktioniert bei mir tadellos:
Spoiler anzeigen
[autoit]#include <SQLite.au3>
[/autoit] [autoit][/autoit] [autoit]_SQLite_Startup()
[/autoit] [autoit][/autoit] [autoit]Local $hSQL = _SQLite_Open()
[/autoit] [autoit][/autoit] [autoit]
Local $sCreate = _
"CREATE TABLE [test] (" & _
"[id] INTEGER PRIMARY KEY NOT NULL," & _
"[uid] TEXT);"
_SQLite_Exec($hSQL, $sCreate)Local $sInsert = _
[/autoit] [autoit][/autoit] [autoit]
"INSERT INTO test VALUES (1, '37DD9D24-9A85-4E5B-BBBF-D8C283C1E144');" & _
"INSERT INTO test VALUES (2, '37DD9D24-9A85-4E5B-BBBF-D8C283C1E145');" & _
"INSERT INTO test VALUES (3, '37DD9D24-9A85-4E5B-BBBF-D8C283C1E146');" & _
"INSERT INTO test VALUES (4, '37DD9D24-9A85-4E5B-BBBF-D8C283C1E147');" & _
"INSERT INTO test VALUES (5, '37DD9D24-9A85-4E5B-BBBF-D8C283C1E148');"
_SQLite_Exec($hSQL, $sInsert)Local $aRow, $hQuery, $sMsg
[/autoit] [autoit][/autoit] [autoit]
Local $strSelect = "SELECT * FROM test;"_SQlite_Query ($hSQL, $strSelect, $hQuery)
[/autoit] [autoit][/autoit] [autoit]While _SQLite_FetchData ( $hQuery, $aRow ) = $SQLITE_OK
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($aRow) -1
$sMsg &= $aRow[$i] & @TAB
Next
$sMsg &= @LF
WEndConsoleWrite($sMsg & @CRLF)
[/autoit] [autoit][/autoit] [autoit]_SQLite_Close()
[/autoit]
_SQLite_Shutdown()
Output: