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

Beiträge von Andy

  • n-te Ziffer von Pi berechnen nach dem Bailey - Borwein - Plouffe-Verfahren

    • Andy
    • 12. Dezember 2010 um 22:32
    Zitat

    SSE im Einsatz wär wirklich mal interessant - würde mich interessieren.

    macht aber nur bei einfacher Genauigkeit Sinn, dann könnte man 4*32Bit in einem Rutsch verarbeiten.
    Dann wäre jeweils ein komplettes Array in einem XMM-Register 8o
    Nur das MOD() ist übel, leider gibts da kaum was entsprechendes. Bliebe nur das übliche: REST= a-int(a/b)*b
    Aber das geht glücklicherweise auch recht einfach bei einfacher Genauigkeit! Leider aber nicht bei double...
    Ich pfriemel mal was zusammen....

  • n-te Ziffer von Pi berechnen nach dem Bailey - Borwein - Plouffe-Verfahren

    • Andy
    • 12. Dezember 2010 um 20:56

    :thumbup:

    Zitat

    Mit Local $arr1[4] = [...] wird im freien Speicher ein neues Array mit 4 Elementen erstellt und dem Bezeichner $arr1 zugewiesen.

    Wenn das so wäre, dann ist es auch in der Hilfe falsch beschrieben! Denn dort heisst es:

    Zitat von Hilfe zu DIM

    ...Arrays....Deklariert man den den Variablennamen erneut, werden alle Werte des Arrays gelöscht, und auf die neu definierte Größe dimensioniert

    Und genau das wollte ich damit machen. Das Array mit den "neuen" Werten überschreiben.

    Zitat

    Mir ist schon klar dass du local nur deswegen genommen hast damit du das Array in nur einer Zeile neu schreiben kannst aber dir als Assembler-Fuchs sollte eigentlich schon klar sein dass du auf diese Weise immer wieder neuen Speicher allozierst anstatt das einmal erstellte Array nur zu aktualisieren.

    hehe, der Fuchs hatte Lunte gerochen und per Processexplorer vorsichtshalber festgestellt, dass mitnichten neuer Speicher angefordert wird. Somit war ich da auf der sicheren Seite. Aber was ich natürlich nicht bedacht hatte war, dass das alte Array gelöscht und das "neue" Array an einem anderen Speicherplatz erstellt wird, anstatt das "alte" einfach zu überschreiben....

    Zitat

    Nun verweist der Bezeichner $arr1 auf den neuen Speicherbereich - also verweist du mit Mod($arr1[1] ^ 2, $arr4[1]) auf einen neuen leeren Speicherplatz - also NULL-Werte (In AutoIt entspricht dies einem Leerstring). Es bleibt also in jedem Fall folgendes übrig: Mod("" ^2, $arr4[1]) was wiederrum, aufgrund der impliziten Typumwandlung, dann folgendem entspricht: Mod(0,$arr4[1])

    So klasse erklärt, das begreife sogar ich! :thumbup:
    Wobei ich aber nicht verstehe, warum ausgerechnet in diesem Fall "von aussen nach innen" geparst wird (seitens Interpreter), statt wie sonst üblich, vonn innen nach aussen.... Naja, wieder was gelernt^^

    Hab mir schon überlegt, den Assembler mal anzuwerfen. Da Vektoren im Spiel sind, könnte man die 128-Bit-SSE Befehle mal aktivieren. Schaumamal, ob ich ne Stunde abgezwackt bekomme dafür...

  • n-te Ziffer von Pi berechnen nach dem Bailey - Borwein - Plouffe-Verfahren

    • Andy
    • 12. Dezember 2010 um 15:42
    Zitat

    Diese Methode ist veraltet und langsam, schon mal von dr Chudnovsky Methode gehört? Da lässt sich auf diesem Rechner Pi innerhalb von Sekunden auf 1,~ Trilliarden Stellen berechenen, das wäre mal interessant in Autoit!

    ...wer lesen kann ist klar im Vorteil...

    Fabrice Bellard (December 2009) hat per Chudnovsky-Methode knapp 150 Tage gebraucht auf seinem Rechner, allerdings hatte er nur 6Gig RAM und nur 7 Terabyte Festplatten.
    Die Schwierigkeit der Verifikation infolge Bitfehler des non-ECC-RAM´s mal aussen vor gelassen....ich glaube kaum, dass ein 08/15 "Gaming"-PC da besser ist...
    Übrigens ein sehr interessantes Dokument, sehr verständlich geschrieben. Von Mathematik sollte man allerdings bissl Ahnung haben...

    Per BPP (also der langsamen Methode^^) auf einem Desktoprechner liegt der Rekord zzt. bei 5 Trilllionen Stellenin 90 Tagen. Man beachte, Dual-XEONs, 96 Gig RAM und knapp 30 Terabyte Platten. Auch da kommt ein 08/15 Gaming-PC nicht ganz mit...

    Soviel zum Thema "in Sekunden"...aber ich halte JEDE Wette, wer sich das Ding kauft, der glaubt das wirklich :D


    Btw. wieso muss man eigentlich in AutoIt

    [autoit]

    $tt0 = Mod($arr1[0] ^ 2, $arr4[0])
    $tt1 = Mod($arr1[1] ^ 2, $arr4[1])
    $tt2 = Mod($arr1[2] ^ 2, $arr4[2])
    $tt3 = Mod($arr1[3] ^ 2, $arr4[3])
    Local $arr1[4] = [$tt0, $tt1, $tt2, $tt3]

    [/autoit]

    schreiben, damit das Array richtig initialisiert wird. Denn die "kurze" Version

    [autoit]

    Local $arr1[4] = [Mod($arr1[0] ^ 2, $arr4[0]),Mod($arr1[1] ^ 2, $arr4[1]),Mod($arr1[2] ^ 2, $arr4[2]),Mod($arr1[3] ^ 2, $arr4[3])]

    [/autoit]

    liefert falsche Ergebnisse!

  • n-te Ziffer von Pi berechnen nach dem Bailey - Borwein - Plouffe-Verfahren

    • Andy
    • 11. Dezember 2010 um 22:22

    da schreib ich vorher lieber einige Zeilen Assembler^^

  • n-te Ziffer von Pi berechnen nach dem Bailey - Borwein - Plouffe-Verfahren

    • Andy
    • 11. Dezember 2010 um 22:18

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. in 758 Sekunden per AutoIt@2.7Ghz
    Mal sehen, was da noch speedmässig zu machen ist^^

    Bilder

    • capture_11122010_221555.jpg
      • 26,75 kB
      • 239 × 133
  • n-te Ziffer von Pi berechnen nach dem Bailey - Borwein - Plouffe-Verfahren

    • Andy
    • 11. Dezember 2010 um 20:50

    Allerdings bringt dir das nicht sonderlich viel ohne die Bignum.udf!
    AutoIt speichert Floatingpointzahlen intern als 64Bit-"double". Also ist nach 3.14159265358979 Schluss, denn damit sind die 64 Bit belegt...
    Die Hex-Digits findet das Programm bis zur 2^63-1. Stelle...wenn man reichlich Zeit hat^^

    Das schöne ist, wenn das Script z.B. 5 Hex-Digits errechnet, kann man diese Hex-Digits ja sofort in "lange" Floats (bignum.au3) umwandeln und einfach zum bisherigen Ergebnis dazuaddieren. Gleichzeitig ist die Startnummer für die nächste Hexziffer schon 5 Digits weiter!

  • n-te Ziffer von Pi berechnen nach dem Bailey - Borwein - Plouffe-Verfahren

    • Andy
    • 11. Dezember 2010 um 17:58

    Einen "Denkanstoss" geb ich noch... :rolleyes:

    wandele die HEX-Ziffern in das Binär-System um (jeweils 4 digits 0 oder 1), du erhälst also 4er "Pakete", die du einfach hintereinander schreibst
    3,243F6 wird zu
    0011 , 0010 0100 0011 1111 01010

    Dann zuerst VOR dem Komma von rechts nach links:
    1*2^0+ 1*2^1+0*2^2+0*2^3 = 3

    Dann HINTER dem Komma von links nach rechts:
    0*2^-1 + 0*2^-2 + 1*2^-3 + 0*2^-4 + 0*2^-5 + 1*2^-6.....uswusf

  • n-te Ziffer von Pi berechnen nach dem Bailey - Borwein - Plouffe-Verfahren

    • Andy
    • 11. Dezember 2010 um 16:41
    Zitat

    Entweder bin ich zu dumm, aber wie kann ich nun letztendlich 3,141... rausbekommen?

    Das hat mit dumm nichts zu tun, sondern mit der Umwandlung einer hexadezimalen Ziffer in eine Dezimale....
    Da bleib ich doch bei meinem Spruch: "Nur selbst fressen macht fett!", also lass dir was einfallen :thumbup:

  • n-te Ziffer von Pi berechnen nach dem Bailey - Borwein - Plouffe-Verfahren

    • Andy
    • 11. Dezember 2010 um 16:32
    Zitat

    Warum wird manchmal aber A oder F oder so ausgegeben?

    Die Ausgabe ist hexadezimal, also zur Basis 16
    Warum und wieso das so ist, ist im Verfahren HIER beschrieben.

  • n-te Ziffer von Pi berechnen nach dem Bailey - Borwein - Plouffe-Verfahren

    • Andy
    • 11. Dezember 2010 um 16:16
    Spoiler anzeigen
    [autoit]

    ;Übersetzung FORTRAN => AutoIt by Andy
    ;Verfahren: http://www.unet.univie.ac.at/~a8727063/Science/BBP/
    ;
    ;Beispiele in FORTRAN;
    ;http://www.unet.univie.ac.at/~a8727063/Science/BBP/bbp.f90 bzw.
    ;http://www.unet.univie.ac.at/~a8727063/Science/BBP/bbpI2R4.f90
    ;
    ;errechnet die n-te Dezimalstelle von PI als HEX-Ziffer
    ;vgl. Tabelle der Ziffern bis 5000
    ;http://books.google.de/books?id=mchJC…tabelle&f=false

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

    ;~ program bbp
    ;~ implicit none
    ;~ integer :: i, k, l, n
    ;~ integer, dimension(4) :: arr1, arr2, arr4
    Dim $arrC[4] = [4, -2, -1, -1]
    Dim $arr1[4]
    Dim $arr2[4]
    Dim $arr3[4]
    Dim $arr4[4]

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

    ;~ real , dimension(4) :: arr3
    ;~ real :: log2

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

    ;log2 = log(2.0)
    $log2 = Log(2.0)
    $log16 = Log(2.0) * 4

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

    ;err = 5q-32
    $err = 5 * 10 ^ - 32

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

    ;~ print '(a)', &
    ;~ "+--------------------------------------------------------------------------+",&
    ;~ "| 'bbp.f90': |",&
    ;~ "| Fortran90 program implementing the BBP algorithm |",&
    ;~ "| for computing hex digits of Pi according to |",&
    ;~ "| http://ams.astro.univie.ac.at/~nendwich/Science/BBP/ |",&
    ;~ "+--------------------------------------------------------------------------+"
    ;~ print '(a,i0,a)', " max n: ", (sqrt(real(huge(n)))-5)/8, &
    $nmax = Int((Sqrt(2 ^ 63) - 5) / 8)
    ;MsgBox(262144,'Debug line ~' & @ScriptLineNumber,'Selection:' & @lf & '$nmax' & @lf & @lf & 'Return:' & @lf & $nmax) ;### Debug MSGBOX
    ;~ " (otherwise result might be uncorrect)"
    ;~ print *, "exit program with n < 0"

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

    ;do
    While 1
    ;~ write (*,'(a)',advance='no') " n = ? : "
    ;~ read (*,'(i)') n
    $n = InputBox("n-te Stelle von PI", "Gesuchte Ziffer eingeben max=" & $nmax)

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

    ;~ if (n<0) exit
    If $n <= 0 Or $n > $nmax Then Exit

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

    ;~ arr3 = [0.,0.,0.,0.] ! ~ arr2 / arr4
    Local $arr3[4] = [0, 0, 0, 0]
    ;~ do k = 0, n
    For $k = 0 To $n
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $k = ' & $k & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    ;~ l = n - k
    $l = $n - $k
    ;~ arr1 = [4,4,4,4] ! 16^(2^i) mod arr4, init: i = -1
    Local $arr1[4] = [4, 4, 4, 4]
    ;~ arr2 = [1,1,1,1] !
    Local $arr2[4] = [1, 1, 1, 1]
    ;~ arr4 = [1,4,5,6] + 8*k ! 8k+j
    Local $arr4[4] = [1 + 8 * $k, 4 + 8 * $k, 5 + 8 * $k, 6 + 8 * $k]
    ; _arraydisplay($arr4)
    ;~ if (l/=0) then
    If $l <> 0 Then
    ;~ do i = 0, int(log(l+0.5)/log2)
    For $i = 0 To Int(Log($l + 0.5) / $log2)
    ;~ arr1 = mod(arr1**2,arr4)
    $tt0 = Mod($arr1[0] ^ 2, $arr4[0])
    $tt1 = Mod($arr1[1] ^ 2, $arr4[1])
    $tt2 = Mod($arr1[2] ^ 2, $arr4[2])
    $tt3 = Mod($arr1[3] ^ 2, $arr4[3])
    Local $arr1[4] = [$tt0, $tt1, $tt2, $tt3]
    ;~ if (btest(l,i)) arr2 = mod(arr2*arr1,arr4)
    If _btest($l, $i) Then
    ; msgbox(0,"btest 1",Mod($arr2[0] * $arr1[0], $arr4[0]))
    $tt0 = Mod($arr2[0] * $arr1[0], $arr4[0])
    $tt1 = Mod($arr2[1] * $arr1[1], $arr4[1])
    $tt2 = Mod($arr2[2] * $arr1[2], $arr4[2])
    $tt3 = Mod($arr2[3] * $arr1[3], $arr4[3])
    Local $arr2[4] = [$tt0, $tt1, $tt2, $tt3]
    EndIf
    ;~ end do ! i
    Next
    ;~ end if
    EndIf
    ;~ arr3 = mod(arr3+real(arr2)/arr4,1.0)
    $tt0 = Mod($arr3[0] + $arr2[0] / $arr4[0], 1.0)
    $tt1 = Mod($arr3[1] + $arr2[1] / $arr4[1], 1.0)
    $tt2 = Mod($arr3[2] + $arr2[2] / $arr4[2], 1.0)
    $tt3 = Mod($arr3[3] + $arr2[3] / $arr4[3], 1.0)
    Local $arr3[4] = [$tt0, $tt1, $tt2, $tt3]
    ;~ end do ! k
    Next
    ;~ print '(a,i0,a,z1)', "Result: ", k, " th hex digit of pi = ", &
    ;~ int(16*modulo(dot_product([4.,-2.,-1.,-1.],arr3),1.0))

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

    ;~ fsum = modulo(dot_product(arrC,arr3),1.0_rk) ! final sum
    $fsum = _modulo(_dot_product($arrC, $arr3), 1.0)

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

    ;~ cor = sum(arrC/(arr4+8_ik)) / 16 ! 1st correction
    Dim $asum[4]
    $asum[0] = $arrC[0] / ($arr4[0] + 8)
    $asum[1] = $arrC[1] / ($arr4[1] + 8)
    $asum[2] = $arrC[2] / ($arr4[2] + 8)
    $asum[3] = $arrC[3] / ($arr4[3] + 8)

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

    $cor = _sum($asum) / 16
    ;MsgBox(262144,'Debug line ~' & @ScriptLineNumber,'Selection:' & @lf & '$cor' & @lf & @lf & 'Return:' & @lf & $cor) ;### Debug MSGBOX
    ;~ ester = k * err ! estimated error
    $ester = $k * $err
    ;~ print *, "Final sum = ", fsum ; fsum = 16 * fsum

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

    ;~ print *, "Est. err. = ", ester ; l = -1 - log(ester)/log16
    ; MsgBox(0, "geschätzter Fehler ester=", $ester)
    ;~ print *, "1st corr. = ", cor
    ; MsgBox(0, "1. corr", $cor)
    ;~ write (*,'(a,i0,a/8x,z1)',advance='no') &
    ;~ "Result: ", k, " th and following hex digits of pi = ", int(fsum)
    ;~ do i = 2, -log(cor)/log16 ! 16^i * cor = 1.0
    $string = ""
    For $i = 2 To Int(-Log($cor) / $log16)
    ;~ if (i==l) write (*,'(" (")',advance='no')
    If $i = $l Then $string &= "( "
    ;~ fsum = 16 * mod(fsum,1.0)
    $fsum = 16 * Mod($fsum, 1.0)
    ;~ write (*,'(z2)',advance='no') int(fsum)
    $string &= Hex(Int($fsum), 1) & " "
    ;~ end do ! i
    Next
    ;~ if (i>l) write (*,'(" )")',advance='no')
    If $i > $l And StringInStr($string, "(") Then $string &= ")"

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

    MsgBox(0, $k & " -te hex-ziffer von Pi =", Hex(Int(16 * _Modulo(_dot_product($arrC, $arr3), 1.0)), 1) & @CRLF & @CRLF & "nächste Ziffern (incl.) = " & $string)

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

    ;end do

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

    WEnd

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

    ;end program bbp

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

    Func _dot_product($a, $b)
    $vec = 0
    For $i = 0 To UBound($a) - 1
    $vec += $a[$i] * $b[$i]
    Next

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

    Return $vec
    EndFunc ;==>_dot_product

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

    Func _btest($a, $pos) ;bittest liefert TRUE, wenn das ($pos-te Bit von $a) = 1 ist
    ;http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gfortran/BTEST.html
    $bit = BitAND(2 ^ 31 - 1, 2 ^ $pos)
    If BitAND($a, $bit) Then
    Return True
    Else
    Return False
    EndIf

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

    EndFunc ;==>_btest

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

    Func _modulo($a, $b) ;ir1 - floor(ir1/ir2)*ir2
    ;http://de.wikibooks.org/wiki/Fortran:_…nktionen#Modulo
    Return $a - Floor($a / $b) * $b
    EndFunc ;==>_modulo

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

    Func _sum($e)
    $sum = 0
    For $i = 0 To UBound($e) - 1
    $sum += $e[$i]
    Next
    Return $sum
    EndFunc ;==>_sum

    [/autoit]


    Wer mag, kann das Script so umschreiben, dass die fortlaufenden Ziffern von Pi errechnet werden (die nächsten Ziffern werden mitberechnet!)

  • SB Sprüche

    • Andy
    • 11. Dezember 2010 um 00:18

    :thumbup:

  • kann man vb dlls in autoit verwenden

    • Andy
    • 10. Dezember 2010 um 17:14
    Zitat

    In vb forum (www.vb-paradise) wird mir immer gesagt dass es nicht geht die dlls in autoit zu verwenden

    ...das kommt davon wenn man mit Leuten zu tun hat, die keine Ahnung haben...selbstverständlich kann man auch aus AutoIt Dll´s benutzen, die mit z.B VB.NET erstellt wurden.

    /EDIT/ Raupi war mal wieder schneller mit suchen :thumbup:

  • Sprenger120 wird 15

    • Andy
    • 9. Dezember 2010 um 12:13

    Glücklichen Herzwunsch zum Geburtstag!
    Feier schön! :D

  • Dateinamen von im Lan verschickten Dateien herausfinden

    • Andy
    • 8. Dezember 2010 um 20:57

    Filezilla wäre auch noch eine Möglichkeit, hat einen tollen FTP-Server und auch guten Client

  • Happy Birthday "AutoIt.de"

    • Andy
    • 8. Dezember 2010 um 19:34
    Zitat

    Danke, dass ihr noch da seid

    Da gibts absolut NICHTS zu danken!

    Zitat

    Wenn sie besser wären, würden die Leute (zu Recht!) dorthin wechseln

    hehe, da brauchen "wir" eigentlich keine Angst zu haben, denn eins gilt immer:" Das Bessere ist des Guten Feind!"

  • h2au3

    • Andy
    • 8. Dezember 2010 um 08:41
    Zitat

    MSDN Suche nach Funktionen und Strukturen implementiert.

    sooooo geil! :thumbup:

  • Happy Birthday "AutoIt.de"

    • Andy
    • 8. Dezember 2010 um 08:22

    Auf weitere erfolgreiche Jahre....

    Zitat

    Erinnert mich immer an die schöne alte Mailbox-Zeit.

    Mausnet FTW :rofl: Auf den Akustikkoppler kann ich aber verzichten...

  • Greenhorn hat Geburtstag.

    • Andy
    • 8. Dezember 2010 um 08:12

    Glücklichen Herzwunsch und alles Gute zum Geburtstag!
    Und willkommen im Club der alten Säcke! Lass es weiterhin richtig krachen!

  • GDI+ Bitmap "trapezoid" zeichnen / DrawImage_4Points

    • Andy
    • 5. Dezember 2010 um 22:31
    Zitat von UEZ

    Habe mal ein Test durchgeführt und es kommt zum Hardcrash (Ausnahmefehler) -> C0000005 (!>20:35:34 AutoIT3.exe ended.rc:-1073741819)!

    Das kommt daher...

    Zitat von Andy

    Einschränkend muss man allerdings sagen, dass nur "richtige" Trapezoide verwendet werden dürfen, soll heissen, konvexe konkave Vierecke (bei denen ein Eckpunkt innerhalb des Dreiecks der anderen drei Eckpunkte liegt) werden nicht dargestellt!

    Die Abfrage, ob das Viereck "konkav" ist, also einer der Eckpunkte innerhalb der von den drei anderen aufgespannten Fläche liegt, hab ich mir gespart....ist aber schon (seit längerem *hüstel*) auf der ToDo-Liste! Ich bin mir noch nicht so ganz sicher, ob man in diesem Fall überhaupt etwas darstellen sollte. Und wenn, was? Denn "perspektivisch" betrachtet, wird dabei die Fläche im Raum gekrümmt, und man sieht das Bild teilweise von hinten. Irgendwo habe ich mal eine Java-Animation gesehen, die das konnte. Allerdings nicht perspektivisch, sondern "nur" eine einfache distortion. Ich bleib am Ball....

  • ini zu langsam, Alternative zu ini

    • Andy
    • 5. Dezember 2010 um 21:37

    ohne grossartig regexp() auszupacken, 15x schneller durch simple Stringfunktionen
    Bei mir dauerte das Orginal mit den IniRead() ca 3 Sekunden, allein die Listview dabei 0,5 Sekunden.
    Berechnung also ca 2.5 Sekunden.
    Wird nun in ca 150ms erledigt (plus die Anzeige in der Listview):

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Array.au3>

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

    $Form1 = GUICreate("Form1", 625, 443, 192, 124)
    $button_erstellen = GUICtrlCreateButton("erstellen", 64, 40, 89, 25, $WS_GROUP)
    $button_berechnen = GUICtrlCreateButton("berechnen", 328, 40, 105, 25, $WS_GROUP)
    $listview_anzeige = GUICtrlCreateListView("1|2|3|4|5|6|7|8|9|10|11|12|13|14|15", 88, 88, 345, 225)
    $label_zeit = GUICtrlCreateLabel("Zeit", 100, 350)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $button_erstellen
    _erstellen()
    Case $button_berechnen
    _berechnen()
    EndSwitch
    WEnd

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

    Func _erstellen()
    For $j = 1 To 200
    For $k = 1 To 30
    IniWrite("geschwindigkeitstest.ini", $j, $k, Random(1, 20000, 1))
    Next
    Next
    EndFunc ;==>_erstellen

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

    Func _berechnen()
    $timer1 = TimerInit()
    $inhalt = FileRead("geschwindigkeitstest.ini")
    Dim $vars[31]
    StringReplace($inhalt, "]", "]")
    $maximal = @extended ;IniReadSectionNames("geschwindigkeitstest.ini")
    For $j = 0 To $maximal
    $a = StringInStr($inhalt, "]" & @CRLF, 1, $j + 1) ;position ]
    $b = StringInStr($inhalt, "[", 1, $j + 2) ;position [
    if $b=0 then $b=stringlen($inhalt) ;letzte
    $str = StringMid($inhalt, $a + 1, $b - $a - 1)
    $split = StringSplit($str, @CRLF, 3)
    For $k = 1 To 30
    $vars[$k] = stringtrimleft($split[$k],stringinstr($split[$k],"="));IniRead("geschwindigkeitstest.ini", $j, $k, 0);
    Next
    $test1 = $vars[1] * $vars[4]
    $test2 = $vars[2] * $vars[5]
    $test3 = $vars[3] * $vars[6]
    $test4 = $vars[4] * $vars[7]
    $test5 = $vars[5] * $vars[4] / $vars[1] * $vars[9]

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

    $item = GUICtrlCreateListViewItem($test1 & "|" & $test2 & "|" & $test3 & "|" & $test4 & "|" & $test5 & "|", $listview_anzeige)
    Next
    GUICtrlSetData($label_zeit, TimerDiff($timer1))
    EndFunc ;==>_berechnen

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

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™