Ich bin mir nicht ganz sicher, aber ich glaube,
das die Formatierungen in HTML geschrieben werden.
<strong></strong> für Fett z.B
Ich bin mir nicht ganz sicher, aber ich glaube,
das die Formatierungen in HTML geschrieben werden.
<strong></strong> für Fett z.B
Über welche Seite gehst du denn bzw kannst du einen Link dazu posten?
Oder ist es ein Programm, welches die Werte angibt?
Falls es eine Seite mit Zugangsschutz ist, wäre der Quellcode interessant, weil dort auch Schriftarten festgelegt sind.
Also ein paar mehr Infos, wo du die Daten herbekommen möchtest wären schön
Läuft der Server lokal bei dir (Xampp o.Ä) oder ist das eine Online Datenbank?
Das hier ist jetzt zumindest schonmal Syntaktisch richtig, wie gesagt, du solltest mal die Zugangsdaten zu der Datenbank prüfen.
#include "mysql.au3"
_MySQL_InitLibrary()
$MysqlConn = _MySQL_Init()
Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "127.0.0.1")
[/autoit] [autoit][/autoit] [autoit]$sDaten = _SQL($MysqlConn,'SELECT Benutzer FROM Accounts;', "|")
MsgBox(0,"Benutzer", "Alle sind: " & $sDaten)
_MySQL_Close($MysqlConn)
; MYSQL beenden
_MySQL_EndLibrary()
Func _SQL($o_MysqlConn,$SQLCode,$sDelimiter)
$Return = ''
$TableContents = _MySQL_Real_Query($o_MysqlConn, $oSQL, $SQLCode)
$h_res = _MySQL_Store_Result($o_MysqlConn)
$av_array = _MySQL_Fetch_Result_StringArray($h_res)
_MySQL_Free_Result($h_res)
$s_tmpfill = ""
For $i = 1 To UBound($av_array) - 1
$s_tmpfill &= $av_array[$i][0] & $sDelimiter
Next
Return StringTrimRight($s_tmpfill, 1))
EndFunc
Du hast sehr viele Fehler in deinem Code:
[autoit]MsgBox(0,"Benutzer, "Alle sind: " & $sDaten)
[/autoit]
Müsste so heißen:
MsgBox(0,"Benutzer", "Alle sind: " & $sDaten)
[/autoit][autoit]$sDaten = _SQL($oSQL, 'SELECT Benutzer FROM Accounts";')
[/autoit]
Hier übergibtst du das SQL Handle und deine Query,
deine Funktion beötigt aber das Query und einen Delimiter
Global $oSQL = _MySQL_Real_Connect("root", "", "Accounts", "localhost")
[/autoit]Wenn deine Datenbank Online ist, kann localhost als Adresse nicht funktionieren, trag hier die IP deiner Datenbank ein
#include <Misc.au3>
HotKeySet("{f1}", "f1drucken")
While 1
Sleep(10)
WEnd
Func f1drucken()
HotKeySet("{f1}")
While _IsPressed(70)
Sleep(200)
Send("{1}{2}{3}")
WEnd
HotKeySet("{f1}", "f1drucken")
EndFunc ;==>f1drucken
Hatte ich aber auch ungefähr so gesagt
Schau dir mal in der Hilfe das Beispiel zu HotKeySet an, das funktioniert dann mit einmaligem Tastendruck, und wenn du nochmal drückst wird aufgehört was auch immer zu senden.
Die andere Möglichkeit wäre mit
[autoit]WHILE _IsPressed(..)
WEND
auf den Tatsächlichen Tastendruck zu prüfen
So funktioniert es, kannst es ja mal ausprobieren.
Sollte es Lieder geben, die nicht durch das RegEx kommen, kannst du die ja hier posten oder per PN an mich, dann pass ich das Regex an
#include <Array.au3>
Local $array[1]
_ArrayAdd($array, "(Eis Am Stiel) Dalida - Come Prima.mp3")
_ArrayAdd($array, "01 - Boney M - Rivers Of Babylon.mp3")
_ArrayAdd($array, "01 - Danyel Gerard - Butterfly.mp3")
_ArrayAdd($array, "01 - Demis Roussos - Good Bye My Love Good Bye.mp3")
_ArrayAdd($array, "01 - George Baker Selection - Una Paloma Blanca.mp3")
_ArrayAdd($array, "01 - Pussycat - Mississippi.mp3")
_ArrayAdd($array, "01 - Simon & Garfunkel - El Condor Pasa.mp3")
For $I = 1 To UBound($array) -1
;MsgBox(0,"",$Ordnerliste[$i])
$test = StringRegExp($array[$i],'(?:.*)(?:\-)(?:\s|)(.*?)(?:\.mp3)', 3)
If not IsArray($test) Then
ConsoleWrite('REGEX passt nicht für ' & $array[$i] & @crlf )
Else
$Titel = $test[0]
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $Titel = ' & $Titel & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
EndIf
Next
Du willst die Daten in eine Textdatei schreiben, da gibts keine Schriftgröße
Und auf was für ein Blatt soll es passen? Es gibt keine Seitenzahl bei einer txt Datei.
RegEx ist eine tolle Sache,
aber wenn du nur die Extension weghaben willst, ist dass das einfachste, da . in Dateinamen verboten ist.
du benutzt $ListeNeu = StringRegExpReplace($Ordnerliste, '.mp3', '', 3) für das ganze Array !!
das geht nicht ..
du must das durch ne schleife jagen
z.b.
[autoit][/autoit]
for $i=1 to $Ordnerliste[0]
$ListeNeu[$i] = StringRegExpReplace($Ordnerliste[$i], '.mp3', '', 3)
next
Das wird aber auch nicht funktionieren, da RegEx da nichts findet
Aber um die letzten 4 Zeichen zu ersetzen reicht auch ein einfaches StringReplace
; Ordner wird ausgewählt
$Ordnerwahl = FileSelectFolder("Bitte Ordner wählen...", "")
$Ordnerliste = _FileListToArray($Ordnerwahl, "*.mp3")
_ArrayDisplay($Ordnerliste)
;Liste wird bearbeitet: z.B. alle suffix entfernen...
For $I = 1 To $Ordnerliste[0]
$Ordnerliste[$i] = StringReplace($Ordnerliste[$i], '.mp3', '')
Next
_ArrayDisplay($Ordnerliste)
Zu den 4 Spalten, wieviele Dateien sollen untereinander stehen? Du musst ja irgendwann sagen, so Stop, jetzt in die nächste Spalte
Es gibt nur ein ReDim kurz vor dem Return des Arrays,
Ich lasse mal einen Vergleich laufen und poste die Geschwindigkeitsergebnisse
NULL steht für nichts, also nicht existent
Philosphisch betrachtet kann man etwas nicht mit nichts vergleichen, weil nichts kein Gewicht, keine Menge, keinen Inhalt etc. hat, eben nichts ist
Mit dem = Zeichen fragst du die Datenbank, ob etwas gleich nichts ist, was mit dem obrigen Gedanken nicht vereinbar ist.
Deshalb Haben sich die klugen Entwickler etwas einfallen lassen, um eben doch auf NULL Werte zu prüfen, nämlich das Zauberwort "IS"
So sollte es funktionieren
[autoit]_SQLite_Query($db, "SELECT Name FROM tbl WHERE Wert IS NULL ;", $Eva)
_SQLite_FetchData($Eva, $ausgabe)
_SQLite_QueryFinalize($Eva)
MsgBox(0, "", $ausgabe[0])
Wäre es nicht einfacher, Das Autoitscript auf der VM laufen zu lassen?
Dort kannst du dann ja mit winwaitactive etc. arbeiten.
Eine andere Möglichkeit wäre, mit
[autoit]Pixelchecksum
[/autoit]den VMPlayer Bildschirm zu überwachen,
und auf bestimmte Fenster reagieren zu lassen.
Such mal nach PushTheButton hier im Forum, hab den Link grade nicht zur Hand
Hier eine etwas andere Version mit der Rekursiven Filesuche von BugFix, sollte so funktionieren
#include <Date.au3>
#include <File.au3>
#include <Array.au3>
$Server = "C:\xampp\tomcat" ;Verzeichnis
$Tage = 1 ;alter der Tage
$Filter = ".pdf" ;Nur pdf´s
$bForceDel = False ; Löschen erzwingen
$bLog = True ; Logging aktivieren
$Array = _GetFilesFolder_Rekursiv($Server, $Filter, 0)
_arraydisplay($Array)
For $i = 1 To UBound($Array) - 1
$sDate = StringRegExpReplace(FileGetTime($Array[$i], 0, 1), '(\d{4})(\d{2})(\d{2})(.*)', '$1/$2/$3')
If _DateDiff('D', $sDate, _NowCalc()) > $Tage Then
If $bForceDel Then FileSetAttrib($Array[$i], '-R')
$iRet = FileDelete($Array[$i])
If $bLog Then ConsoleWrite('Delete File "' & $Array[$i] & '" = ' & StringMid('No Yes', $iRet * 3 + 1, 3) & @CRLF)
EndIf
Next
; #FUNCTION#
;==================================================================================================
; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
; Description: Rekursive Auflistung von Dateien und/oder Ordnern
; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
; optional: $iRetType 0 gibt Array, 1 gibt String zurück
; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
; 0 -@CRLF (Standard) 1 -@CR 2 -@LF 3 -';' 4 -'|'
; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
;==================================================================================================
Func _GetFilesFolder_Rekursiv($sPath, $sExt = '*', $iDir = -1, $iRetType = 0, $sDelim = '0', $bProcess = False)
Global $oFSO = ObjCreate('Scripting.FileSystemObject')
Global $strFiles = ''
Switch $sDelim
Case '1'
$sDelim = @CR
Case '2'
$sDelim = @LF
Case '3'
$sDelim = ';'
Case '4'
$sDelim = '|'
Case Else
$sDelim = @CRLF
EndSwitch
If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
If $sExt = -1 Then $sExt = '*'
If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
_ShowSubFolders($oFSO.GetFolder($sPath), $sExt, $iDir, $sDelim, $bProcess)
If $iRetType = 0 Then
Local $aOut
$aOut = StringSplit(StringTrimRight($strFiles, StringLen($sDelim)), $sDelim, 1)
If $aOut[1] = '' Then
ReDim $aOut[1]
$aOut[0] = 0
EndIf
Return $aOut
Else
Return StringTrimRight($strFiles, StringLen($sDelim))
EndIf
EndFunc ;==>_GetFilesFolder_Rekursiv
Func _ShowSubFolders($Folder, $Ext = '*', $Dir = -1, $Delim = @CRLF, $bProcess = False)
If Not IsDeclared("strFiles") Then Global $strFiles = ''
If ($Dir = -1) Or ($Dir = 0) Then
For $file In $Folder.Files
If $Ext <> '*' Then
If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
$strFiles &= $file.Path & $Delim
Else
$strFiles &= $file.Path & $Delim
EndIf
Next
EndIf
For $Subfolder In $Folder.SubFolders
If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
_ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
Next
EndFunc ;==>_ShowSubFolders
Probier es mal so
[autoit]$DIV =_IEGetObjById($oIE, "AKTEN_IMPORTIEREN")
$x = _IEPropertyGet($DIV, "screenx")
$y = _IEPropertyGet($DIV, "screeny" )
Ansonsten würde ich raten, mit WINHTTP und POST bzw. GET abfragen zu arbeiten, damit kannst du javascript "umgehen"
Probier es mal so
[autoit]
$adCN = ObjCreate("ADODB.Connection")
$adCN.Open("DRIVER={SQL Server};SERVER=(local)\test;DATABASE=test")
$quer = $adCN.Execute("insert into A Values (12,'bla')")
If Not $quer.EOF Then
MsgBox(0,"Erfolg", "Erfolgreich")
Else
MsgBox(0,"Fehler", "Fehler")
EndIf
$adCN.close
ansonsten mal mit nem Error Handler probieren:
[autoit]Global $oError
; Initializes COM handler
$oError = ObjEvent("AutoIt.Error", "ErrHandler")
Func ErrHandler()
$HexNumber=Hex($oError.number,8)
Msgbox(0, StringReplace( $oError.windescription, "error", "COM Error #") & $oError.Number, _
$oError.Description & @CRLF & _
"Source: " & @TAB & $oError.source & @CRLF & _
"at Line #: " & $oError.ScriptLine & @TAB & _
"Last DllError: " & @TAB & $oError.lastdllerror & @CRLF & _
"Help File: " & @TAB & $oError.helpfile & @TAB & "Context: " & @TAB & $oError.helpcontext _
)
SetError(1) ; to check for after this function returns
;Exit
Endfunc
Fast,
Func _LoadSettings()
$Key = IniReadSection($Name & ".ini", $Name)
If Not @error Then
For $o = 1 To $Key[0][0]
GUICtrlSetData(Assign(Stringtrimleft($Key[$o][0], 1), Eval(Stringtrimleft($Key[$o][0]), 1), 4)) , $Key[$o][1], "")
Next
EndIf
EndFunc
Müsste so funktionieren (ungetestet)
worum geht es denn?
hört sich nach einer RegEx aufgabe an
Speichere nicht die Controlid, da sich die ändern kann, wenn du dein GUI veränderst.
Vielleicht würde dir das auch so reichen
Func _SelectFolder()
$SelectFolder = FileSelectFolder("Select Folder", "") ;Ordner auswählen
GUICtrlSetData($FolderInput, $SelectFolder & "\") ;erstmal in ein Input schreiben
_SaveSetting("$FolderInput", $SelectFolder & "\") ;und mit der Funktion in eine ini schreiben
EndFunc
Damit speicherst du den Variablennamen, und nicht die Controlid