Textdatei in sql konvertieren

  • Hallo Leute,

    ich möchte, dass mein Script das hier:

    Code
    Mannschaft 4  	- 	 Mannschaft 3 	  	_ 	: 	_ 	  		
    	  	Mannschaft 9  	- 	 Mannschaft 6 	  	_ 	: 	_ 	  		
    	  	Mannschaft 5  	- 	 Mannschaft 1 	  	_ 	: 	_ 	  		
    	  	Mannschaft 2  	- 	 Mannschaft 7 	  	_ 	: 	_ 	  		
    	  	Mannschaft 10  	- 	 Mannschaft 8 	  	_ 	: 	_

    umformatiert in folgendes:

    SQL
    INSERT INTO `lig1_matches` (`matchID`, `leagueID`, `homeID`, `awayID`, `scoreHome`, `scoreAway`, `ggHome`, `ggAway`, `accepted`, `matchType`, `time`, `lastEdit`, `replay`, `replay2`) VALUES
    ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'),
    ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'),
    ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'),
    ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'),
    ('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n'),

    Die erste Zeile, sollte nur 1x dortstehen, dass kann man ja einfach über FileWrite machen.
    Bei der zweiten Zeile fängt nun das formatieren an:

    für a sollte nun eine Zahl stehen, beginnend mit 1 und sich jedes mal weiter erhöhen um 1
    b sollte die zahl 1 immer stehen
    c sollte die mannschaft stehen, aber nicht der Name der mannschaft sondern die mannschaften sollten erst einer variablen zugeteilt werden, dh. Mannschaft 4 ist zB. der wert "140". Nun sollte dann gesehen werden, aha. da ist "Mannschaft 4" also packe ich den Wert "140" in c rein
    d ist das gleiche spiel wie c
    e, f, g, h, i, l, m und n sollten leer stehen
    j sollte ebenfalls überall mit 1 definiert sein
    k sollte eine zahl sein, die ich vorher mir ausdenken kann bzw. die ich immer beliebig anpassen kann.

    Am ende sollte dann folgendes rauskommen:

    Mannschaftswerte:
    Mannschaft 1 = 147
    Mannschaft 2 = 143
    Mannschaft 3 = 139
    Mannschaft 4 = 140
    Mannschaft 5 = 142
    Mannschaft 6 = 148
    Mannschaft 7 = 146
    Mannschaft 8 = 145
    Mannschaft 9 = 141
    Mannschaft 10 = 144

    k = 99999

    SQL
    INSERT INTO `lig1_matches` (`matchID`, `leagueID`, `homeID`, `awayID`, `scoreHome`, `scoreAway`, `ggHome`, `ggAway`, `accepted`, `matchType`, `time`, `lastEdit`, `replay`, `replay2`) VALUES
    ('1', '1', '140', '139', '', '', '', '', '', '1', '99999', '', '', ''),
    ('2', '1', '141', '148', '', '', '', '', '', '1', '99999', '', '', ''),
    ('3', '1', '142', '147', '', '', '', '', '', '1', '99999', '', '', ''),
    ('4', '1', '143', '146', '', '', '', '', '', '1', '99999', '', '', ''),
    ('5', '1', '144', '145', '', '', '', '', '', '1', '99999', '', '', ''),


    Nun, wie ich das ganze umsetze, hatte da an FileWrite gedacht und FileReadLine, aber weiß nicht genau wie ich das umsetzen soll.

  • Und wo liegt jetzt das Problem? Wie sieht dein Script bis jetzt aus? Du musst dabei ja nicht einmal irgendetwas berechnen also kannst du einfach mit FileReadLine die Zeile einlesen und Sie dann umwandeln. Das Schema hast du ja bereits. Für a erhöhst du einfach immer eine Variable, für b und c erstellst du ein Array, welches du mit _ArraySearch durchsuchen kannst. Poste am besten erstmal was du bereits hast. Dann können wir auch besser sehen worans scheitert.

    Gruss Shadowigor

  • Wäre cool, wenn ich bereits was hätte :D
    Aber das blöde ist ich weiß nicht wie ich das ganze in ein script schreiben soll. Wie vereinzelnt funktionen laufen weiß ich, aber zB. habe ich keienrlei Ahnung wie ich das ganze anfangen soll ^^
    Weil FileRead Line liest doch die ganze Zeile aus, aber es soll ja nur die Namen der besten mannschaften auslesen usw. :/

  • Hier einmal ein 1. Ansatz:

    Spoiler anzeigen
    [autoit]

    #Include <File.au3>
    #Include <Array.au3>

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

    Global $aTmp

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

    _FileReadToArray(@ScriptDir & "\Matches.txt",$aTmp)
    ;_ArrayDisplay($aTmp)

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

    Global $aPairs[$aTmp[0]+1][2]

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

    for $i = 1 to $aTmp[0]
    $aSplit = StringSplit($aTmp[$i],@TAB)
    ;_ArrayDisplay($aSplit)
    $aPairs[$i][0] = $aSplit[3]
    $aPairs[$i][1] = $aSplit[5]
    Next
    $aPairs[0][0] = UBound($aPairs)-1
    _ArrayDisplay($aPairs)

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

    Global $aTmp

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

    _FileReadToArray(@ScriptDir & "\Scores.txt",$aTmp)
    _ArrayDisplay($aTmp)
    Global $aScores[$aTmp[0]+1][2]

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

    for $i = 1 to $aTmp[0]
    $aSplit = StringSplit($aTmp[$i],"=")
    ;_ArrayDisplay($aSplit)
    $aScores[$i][0] = $aSplit[1]
    $aScores[$i][1] = $aSplit[2]
    Next
    $aScores[0][0] = UBound($aScores)-1
    _ArrayDisplay($aScores)

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

    $hFile = FileOpen(@ScriptDir & "\SQL.txt",2)
    FileWriteLine($hFile,"INSERT INTO `lig1_matches` (`matchID`, `leagueID`, `homeID`, `awayID`, `scoreHome`, `scoreAway`, `ggHome`, `ggAway`, `accepted`, `matchType`, `time`, `lastEdit`, `replay`, `replay2`) VALUES")
    for $i = 1 To $aPairs[0][0]
    $iHome =$aScores[Int(StringReplace($aPairs[$i][0],"Mannschaft",""))][1]
    $iAway =$aScores[Int(StringReplace($aPairs[$i][1],"Mannschaft",""))][1]
    $sLine ="('"&$i&"', '1', '"
    $sLine &=$iHome&"', '"&$iAway
    $sLine &="', '', '', '', '', '', '1',"& $aScores[$aScores[0][0]][1]&"', '', '', ''),"
    FileWriteLine($hFile,$sLine)
    Next
    FileClose($hFile)

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

    #cs
    ;Pairs
    [0]|5|
    [1]|Mannschaft 4 | Mannschaft 3
    [2]|Mannschaft 9 | Mannschaft 6
    [3]|Mannschaft 5 | Mannschaft 1
    [4]|Mannschaft 2 | Mannschaft 7
    [5]|Mannschaft 10 | Mannschaft 8

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

    ;Scores
    [0]|11|
    [1]|Mannschaft 1 | 147
    [2]|Mannschaft 2 | 143
    [3]|Mannschaft 3 | 139
    [4]|Mannschaft 4 | 140
    [5]|Mannschaft 5 | 142
    [6]|Mannschaft 6 | 148
    [7]|Mannschaft 7 | 146
    [8]|Mannschaft 8 | 145
    [9]|Mannschaft 9 | 141
    [10]|Mannschaft 10 | 144
    [11]|k|9999
    #ce

    [/autoit]

    er muss noch so abgeändert werden dass statt der Platzhalter (Mannschaft 1 ... Mannschaft 10) echte Mannschaftsnamen verwendet werden können,

    Benutzt wurden diese Dateien: autoit.de/wcf/attachment/17232/, autoit.de/wcf/attachment/17237/ welche aus obigem Text einkopiert wurden.

    mfg autoBert

  • Boah autoBert du bist ein Gott!!!
    Ich danke dir vielmals!!

    Eine Frage habe ich noch, kann man den Anfangswert von "a" bestimmen?
    Dass ist sage die Zahl ist 250 und der macht dann von 250 immer um 1 erhöhen?
    Und zweite frage ist, kann man es so einstellen, dass k variabel ist. Damit meine ich, die ersten 5 Matches haben die variable k= 100
    Die nächsten 5 haben dann k = 200 usw. ?

    Hoffe ist versändlich wie ich es erklärt habe, aber danke dafür vielmals! :)

    autoBert :love: :love: :love:


  • Kann man alles, wir sind hier aber nicht im Mach mal Forum sondern in Hife und Unterstützung.

    mfg autoBert

    Ja, aber weiß nciht wie ich das anstellen soll. Habe mir das script bisher angesehen und dafür reicht mein wissen nicht aus.
    Ich weiß das in der Zeile:

    [autoit]

    $sLine ="('"&$i&"', '1', '"

    [/autoit]

    das &$i& für den Wert "a" steht.
    Ich weiß auch dass man den definieren könnte über:

    [autoit]

    $i = 250
    $i = $i + 1

    [/autoit]

    Aber davon sehe ich leide rnichts in dem Script :/
    Habe noch nie mit strings gearbeitet geschweige denn arrays

  • Okay, ich habs doch herausgefunden ^^
    Habe einfach eine andere Variable genommen und diese dann im script eingebaut

    Spoiler anzeigen
    [autoit]

    #Include <File.au3>
    #Include <Array.au3>

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

    Global $aTmp

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

    _FileReadToArray(@ScriptDir & "\Matches.txt",$aTmp)
    ;_ArrayDisplay($aTmp)

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

    Global $aPairs[$aTmp[0]+1][2]

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

    $s = 250

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

    for $i = 1 to $aTmp[0]
    $aSplit = StringSplit($aTmp[$i],@TAB)
    ;_ArrayDisplay($aSplit)
    $aPairs[$i][0] = $aSplit[3]
    $aPairs[$i][1] = $aSplit[5]

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

    Next
    $aPairs[0][0] = UBound($aPairs)-1
    _ArrayDisplay($aPairs)

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

    Global $aTmp

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

    _FileReadToArray(@ScriptDir & "\Scores.txt",$aTmp)
    _ArrayDisplay($aTmp)
    Global $aScores[$aTmp[0]+1][2]

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

    for $i = 1 to $aTmp[0]
    $aSplit = StringSplit($aTmp[$i],"=")
    ;_ArrayDisplay($aSplit)
    $aScores[$i][0] = $aSplit[1]
    $aScores[$i][1] = $aSplit[2]
    Next
    $aScores[0][0] = UBound($aScores)-1
    _ArrayDisplay($aScores)

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

    $hFile = FileOpen(@ScriptDir & "\SQL.txt",2)
    FileWriteLine($hFile,"INSERT INTO `lig1_matches` (`matchID`, `leagueID`, `homeID`, `awayID`, `scoreHome`, `scoreAway`, `ggHome`, `ggAway`, `accepted`, `matchType`, `time`, `lastEdit`, `replay`, `replay2`) VALUES")
    for $i = 1 To $aPairs[0][0]
    $iHome =$aScores[Int(StringReplace($aPairs[$i][0],"Mannschaft",""))][1]
    $iAway =$aScores[Int(StringReplace($aPairs[$i][1],"Mannschaft",""))][1]
    $sLine ="('"&$s&"', '1', '"
    $sLine &=$iHome&"', '"&$iAway
    $sLine &="', '', '', '', '', '', '1',"& $aScores[$aScores[0][0]][1]&"', '', '', ''),"
    $s = $s + 1
    FileWriteLine($hFile,$sLine)
    Next
    FileClose($hFile)

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

    #cs
    ;Pairs
    [0]|5|
    [1]|Mannschaft 4 | Mannschaft 3
    [2]|Mannschaft 9 | Mannschaft 6
    [3]|Mannschaft 5 | Mannschaft 1
    [4]|Mannschaft 2 | Mannschaft 7
    [5]|Mannschaft 10 | Mannschaft 8

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

    ;Scores
    [0]|11|
    [1]|Mannschaft 1 | 147
    [2]|Mannschaft 2 | 143
    [3]|Mannschaft 3 | 139
    [4]|Mannschaft 4 | 140
    [5]|Mannschaft 5 | 142
    [6]|Mannschaft 6 | 148
    [7]|Mannschaft 7 | 146
    [8]|Mannschaft 8 | 145
    [9]|Mannschaft 9 | 141
    [10]|Mannschaft 10 | 144
    [11]|k|9999
    #ce

    [/autoit]


    _____________________

    Spoiler anzeigen
    [autoit]

    #Include <File.au3>
    #Include <Array.au3>

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

    Global $aTmp

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

    _FileReadToArray(@ScriptDir & "\Matches.txt",$aTmp)
    ;_ArrayDisplay($aTmp)

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

    Global $aPairs[$aTmp[0]+1][2]

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

    $s = 250
    $time = 100

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

    for $i = 1 to $aTmp[0]
    $aSplit = StringSplit($aTmp[$i],@TAB)
    ;_ArrayDisplay($aSplit)
    $aPairs[$i][0] = $aSplit[3]
    $aPairs[$i][1] = $aSplit[5]

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

    Next
    $aPairs[0][0] = UBound($aPairs)-1
    _ArrayDisplay($aPairs)

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

    Global $aTmp

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

    _FileReadToArray(@ScriptDir & "\Scores.txt",$aTmp)
    _ArrayDisplay($aTmp)
    Global $aScores[$aTmp[0]+1][2]

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

    for $i = 1 to $aTmp[0]
    $aSplit = StringSplit($aTmp[$i],"=")
    ;_ArrayDisplay($aSplit)
    $aScores[$i][0] = $aSplit[1]
    $aScores[$i][1] = $aSplit[2]
    Next
    $aScores[0][0] = UBound($aScores)-1
    _ArrayDisplay($aScores)

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

    _FileReadToArray(@ScriptDir & "\Scores.txt",$aTmp)

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

    $hFile = FileOpen(@ScriptDir & "\SQL.txt",2)
    FileWriteLine($hFile,"INSERT INTO `lig1_matches` (`matchID`, `leagueID`, `homeID`, `awayID`, `scoreHome`, `scoreAway`, `ggHome`, `ggAway`, `accepted`, `matchType`, `time`, `lastEdit`, `replay`, `replay2`) VALUES")
    for $i = 1 To $aPairs[0][0]

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

    $iHome =$aScores[Int(StringReplace($aPairs[$i][0],"Mannschaft",""))][1]
    $iAway =$aScores[Int(StringReplace($aPairs[$i][1],"Mannschaft",""))][1]
    $sLine ="('"&$s&"', '1', '"
    $sLine &=$iHome&"', '"&$iAway
    $sLine &="', '', '', '', '', '', '1',"&$time&"', '', '', ''),"
    $s = $s + 1
    $time = $time + 100
    FileWriteLine($hFile,$sLine)
    Next
    FileClose($hFile)

    [/autoit]


    €: Habe jetzt etwas für "k" auch gemacht, aber habe da ein problem, er steigert mir k immer um 100. Aber das Problem ist, er soll das erst nach 5 durchgängen machen. Dh. die ersten 5 sollen um 100 haben. Die nächsten 5 sollen 200 haben.
    Ein weiteres Problem ist, ich will, dass die ersten fünf Matches den Wert "100" haben. Die nächsten fünf Matches sollen dann um +200 erhöht werden, also den wert "300". Die Nächsten fünf Matches sollen um +50 erhöht werden, also auf "350". Die nächsten fünf dann wieder um +200, also "550", dann wieder um +50. Also einen startwert haben und dann immer abwechselnd erhöhen.
    Aber ich habe keinen blassen schimmer wie -.-

    Als hinteroption hatte ich mir gedacht, dass ich einfach in score.txt die zeile 11 auslese, die zahl reinschreibe, dann wird die zeile 12 ausgelesen und für das nächste match für k eingesetzt. Dann wieder die nächste zeile, aber das würde heißen ich müsste in die zeile 11-15 den wert "100" schreiben usw. also manuell quasi eintragen.

    Einmal editiert, zuletzt von NewAnime (13. Dezember 2012 um 17:34)

  • Hi,

    Zitat

    Habe mir das script bisher angesehen und dafür reicht mein wissen nicht aus.

    dann lern es!

    Du kannst nicht immer andere Leute fragen, wenn du selbst was nicht hinbekommst - ok, "nicht hinbekommen" ist das eine, "gar nicht versuchen" das andere.

    >>>
    "Wer immer nur das tut was er schon kann, wird immer das bleiben was er ist!"
    - Henry Ford
    <<<

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • €: Habe jetzt etwas für "k" auch gemacht, aber habe da ein problem, er steigert mir k immer um 100. Aber das Problem ist, er soll das erst nach 5 durchgängen machen.


    Da du nur 5 Zeilen ausgibst kannst du einfch die Addition (Zeile 52) weglassen. In Zeile 50 ist immer noch ein Füchtigkeitsfehler (bereits in meinem Skript enthalten). Sie muss so aussehen:

    [autoit]

    $sLine &="', '', '', '', '', '', '1','"&$time&"', '', '', ''),"

    [/autoit]

    Nenn doch bitte einmal die Sportart für die du dies generieren wilst.

    mfg autoBert

  • Ja, aber normalerweiße sind es nicht nur 5 Zeilen sondern 90 :D
    Daher soll es alle 5 Zeilen eben diesen wechsel machen, da unter $time der Spieltag bestimmt wird, somit gibt es pro Spieltag 5 Spiele und er soll mir das in einem rythmus von Mo - Do dann wieder Mo, daher auch abwechselnd +50 und dann wieder +200.
    Es ein koverter für einen Spielplan in sql, den ich dann über die query in die datenbank einfügen kann. Es ist eine Liga zum kostenlosen Onlinemultiplayerspiel Haxball.

  • Hier das Skript ( lt. Post #8 )

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>

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

    Global $aTmp

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

    _FileReadToArray(@ScriptDir & "\Matches.txt", $aTmp)
    ;_ArrayDisplay($aTmp)

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

    Global $aPairs[$aTmp[0] + 1][2]

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

    $s = 250
    $time = 100

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

    For $i = 1 To $aTmp[0]
    $aSplit = StringSplit($aTmp[$i], @TAB)
    ;_ArrayDisplay($aSplit)
    $aPairs[$i][0] = $aSplit[3]
    $aPairs[$i][1] = $aSplit[5]

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

    Next
    $aPairs[0][0] = UBound($aPairs) - 1
    ;_ArrayDisplay($aPairs)

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

    Global $aTmp

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

    _FileReadToArray(@ScriptDir & "\Scores.txt", $aTmp)
    ;_ArrayDisplay($aTmp)
    Global $aScores[$aTmp[0] + 1][2]

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

    For $i = 1 To $aTmp[0]
    $aSplit = StringSplit($aTmp[$i], "=")
    ;_ArrayDisplay($aSplit)
    $aScores[$i][0] = $aSplit[1]
    $aScores[$i][1] = $aSplit[2]
    Next
    $aScores[0][0] = UBound($aScores) - 1
    _ArrayDisplay($aScores)

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

    $hFile = FileOpen(@ScriptDir & "\SQL.txt", 2)
    FileWriteLine($hFile, "INSERT INTO `lig1_matches` (`matchID`, `leagueID`, `homeID`, `awayID`, `scoreHome`, `scoreAway`, `ggHome`, `ggAway`, `accepted`, `matchType`, `time`, `lastEdit`, `replay`, `replay2`) VALUES")
    For $j = 1 To 18
    switch $j
    case 1
    ;do nothing
    case 2,4,6,8,10,12,14,16,18
    $time += 200
    case 3,5,7,9,11,13,15,17
    $time += 50
    EndSwitch
    If $j > 1 Then ;1. 5 mit 100
    ConsoleWrite($j & @TAB & Mod($j+1, 2) & @CRLF)
    #cs
    If Mod($j+1, 2) Then ;alle durch 2 teilbaren 5er Schritte um 200 erhöhen
    $time += 200
    Else ;die anderen um 50 erhöht
    $time += 50
    EndIf
    #ce
    EndIf
    For $i = 1 To $aPairs[0][0]
    $iHome = $aScores[Int(StringReplace($aPairs[$i][0], "Mannschaft", ""))][1]
    $iAway = $aScores[Int(StringReplace($aPairs[$i][1], "Mannschaft", ""))][1]
    $sLine = "('" & $s & "', '1', '"
    $sLine &= $iHome & "', '" & $iAway
    $sLine &= "', '', '', '', '', '', '1','" & $time & "', '', '', ''),"
    $s = $s + 1
    FileWriteLine($hFile, $sLine)
    Next
    Next
    FileClose($hFile)

    [/autoit]

    ist aber imho unsinnig da an allen 16. Spieltagen die gleichen Paarungen gegeneinander spielen.

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (15. Dezember 2012 um 11:33) aus folgendem Grund: störenden Smilie verhindert

  • Hmm also die komplette Matches.txt sieht so aus:

    Spoiler anzeigen

    Nach jeweils 5 Spielen sollte sich die $time ändern. Also er sollte nicht immer wieder die ersten 5 Zeilen(Matches) nehmen und die time ändern, sondern die nächsten 5 Zeilen(Matches) und die time dann auf +200 erhöhen. Dann die nächsten 5 Zeilen(Matches) und die time um +50 erhöhen und immer so abwechselnd, bis alle 90 Matches (oder wieviele es auch immer am ende sind) in der sql datei stehen.
    Und sorry, dass ich da nciht viel helfen kann, ich hab schon ein bisschen rumprobiert, aber bei mir kommt nur Müll raus :/

  • Der Rest istdch nur noch eine Rechenformel, das Grundgerüst steht doch.

    Naja im aktuellen Stand macht er aus einem Match gleich 18 Stück?
    Er nimmt das Match und kopiert es 18 mal und ändert dabei dann die time. Aber so sollte es ja gar nicht sein :/
    Er soll ja alle Matches so übernehmen, das heißt alle 90 Matches sollten dann auch in der SQL Datei einmal vorhanden sein.

  • Naja im aktuellen Stand macht er aus einem Match gleich 18 Stück?
    Er nimmt das Match und kopiert es 18 mal und ändert dabei dann die time. Aber so sollte es ja gar nicht sein :/

    Das ist mir schon klar deswegen auch

    Der Rest istdch nur noch eine Rechenformel, das Grundgerüst steht doch.

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>

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

    Global $aTmp

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

    _FileReadToArray(@ScriptDir & "\Matches.txt", $aTmp)
    ;_ArrayDisplay($aTmp)

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

    Global $aPairs[$aTmp[0] + 1][2]

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

    $s = 250
    $time = 100

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

    For $i = 1 To $aTmp[0]
    $aSplit = StringSplit($aTmp[$i], @TAB)
    ;_ArrayDisplay($aSplit)
    $aPairs[$i][0] = $aSplit[3]
    $aPairs[$i][1] = $aSplit[5]

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

    Next
    $aPairs[0][0] = UBound($aPairs) - 1
    ;_ArrayDisplay($aPairs)

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

    Global $aTmp

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

    _FileReadToArray(@ScriptDir & "\Scores.txt", $aTmp)
    ;_ArrayDisplay($aTmp)
    Global $aScores[$aTmp[0] + 1][2]

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

    For $i = 1 To $aTmp[0]
    $aSplit = StringSplit($aTmp[$i], "=")
    ;_ArrayDisplay($aSplit)
    $aScores[$i][0] = $aSplit[1]
    $aScores[$i][1] = $aSplit[2]
    Next
    $aScores[0][0] = UBound($aScores) - 1
    _ArrayDisplay($aScores)

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

    $hFile = FileOpen(@ScriptDir & "\SQL.txt", 2)
    FileWriteLine($hFile, "INSERT INTO `lig1_matches` (`matchID`, `leagueID`, `homeID`, `awayID`, `scoreHome`, `scoreAway`, `ggHome`, `ggAway`, `accepted`, `matchType`, `time`, `lastEdit`, `replay`, `replay2`) VALUES")
    For $i = 1 To $aPairs[0][0]
    $iHome = $aScores[Int(StringReplace($aPairs[$i][0], "Mannschaft", ""))][1]
    $iAway = $aScores[Int(StringReplace($aPairs[$i][1], "Mannschaft", ""))][1]
    $sLine = "('" & $s & "', '1', '"
    $sLine &= $iHome & "', '" & $iAway
    $sLine &= "', '', '', '', '', '', '1','" & $time & "', '', '', ''),"
    $s = $s + 1
    FileWriteLine($hFile, $sLine)
    If Mod($i, 5) = 0 Then ;nur bei jedem 5. Lauf
    $j = Int($i / 5) ;die wievielte 5er Gruppe?
    Switch $j
    Case 0
    ;do nothing
    Case 1, 3, 5, 7, 9, 11, 13, 15, 17
    $time += 200
    Case Else
    $time += 50
    EndSwitch
    ;ConsoleWrite($i & @TAB & $j & @TAB & $time & @CRLF)
    EndIf
    Next
    FileClose($hFile)

    [/autoit]

    mfg autoBert