Sie sind nicht angemeldet.

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

1

Mittwoch, 30. Januar 2013, 14:26

Original Stammdaten Wettbewerbe/Vereine

Hallo FM-Gemeinde!

Ich hatte vor einiger Zeit mal anklingen lassen, dass es durchaus Möglichkeiten gibt, ein Tool zu erstellen, mit dem man, nach Fertigstellung, mit nur wenigen Mausklicks alle originalen o. a. Stammdaten im Editor aktualisieren können soll.
Das ist vor allem deshalb durchaus sinnvoll und nützlich, weil man damit vollkommen unabhängig von offiziellen Datenbankaktualisierungen, die zwar der Regel nur Spielertransfers betreffen, die aber trotzdem immer die gesamten Datenbanken überschreiben.

Gescheitert sind die Versuche bisher immer an einem unzumutbar hohem Zeitfaktor, d.h., die Aktualisierung der Stammdaten dauerte mit dem Tool in etwa 45-50 Minuten pro Liga.
Da kann man während der Programmabläufe Kaffeetrinken gehen, oder sonstwas anderes machen. :D

Ich habe nun eine Möglichlkeit gefunden, diese zeitlich hohen Abläufe erheblich zu reduzieren.
Die Aktualisierung einer Liga dauert nach jetzigem Stand etwa nur noch 20-30 Minuten. Damit könnte man leben, wenn man den zeitlichen Aufwand als Vergleich heranzieht, der in der Regel beim manuellen Editieren der FM-Daten aufgebracht werden muss.

Mit dem Tool sollen folgende Daten bearbeitet werden können:

-Ändern der Namen der internationalen Wettbewerbe
-Andern der Namen der nationalen Wettbewerbe

-Ändern der Vereinsdaten
+Verenislangnamen-/kurznamen-/kürzel
+Fan,-Teambezeichnungen
+Fanrivalitäten/Fanfreundschaften
+Vereinsanschriften-/Telefonnummern-/E-Mail-Adressen
+Stadionnamen/Stadiondaten
+Daten der Einrichtungen auf dem Vereinsgelände
+Ewige Tabellen/Titel/Statistiken

Hier mal ein Auszug aus dem Script des Tools. Das ist jetzt nur ein Verein, mit relativ wenig Zeilen Code.
Man man kann sich aber dennoch ausmalen, wieviele Zeilen Code es bei ein paar hundert Vereinen sein werden:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
;--AC Milan (CLUB2)
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"AC Mailand"' '$\r$\n"AC Milan","AC Milan","AC Milan","AC Milan","AC Milan","AC Milan"' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"AC Mailand"' '$\r$\n"AC Milan","AC Milan","AC Milan","AC Milan","AC Milan","AC Milan"' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"AC"' '$\r$\n"MIL","MIL","MIL","MIL","MIL","MIL"' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"Mailand"' '$\r$\n"Milano","Milano","Milano","Milano","Milano","Milano"' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"Milan-Spieler"' '$\r$\n"Milanista","Milanista","Milanista","Milanista","Milanista","Milanista"' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"Mailänder"' '$\r$\n"Rossoneri","Rossoneri","Rossoneri","Rossoneri","Rossoneri","Rossoneri"' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"","","","","",""' '$\r$\n"Milanisti","Milanisti","Milanisti","Milanisti","Milanisti","Milanisti"' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"Milan-Fans"' '$\r$\n"Brigate Rossonere","Brigate Rossonere","Brigate Rossonere","Brigate Rossonere","Brigate Rossonere","Brigate Rossonere"' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"AC-Fans"' '$\r$\n"Diavoli","Diavoli","Diavoli","Diavoli","Diavoli","Diavoli"' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"San Siro "' '$\r$\n"Giuseppe Meazza","Giuseppe Meazza","Giuseppe Meazza","Giuseppe Meazza","Giuseppe Meazza","Giuseppe Meazza"' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '2,1,4,3,1,0' '$\r$\n2,0,0,0,0,0' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" 'Via Fillippo Turati - Milano' '$\r$\nVia Fillippo Turati 3, 20121 Milano' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" 'www.acmilan.com' '$\r$\n$\r$\n$\r$\nDiavolo' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1769479,1769481,1769482,1769476,1769487' '$\r$\n1769479,1769481,1769482,1769510,1769496' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1769479,1769481,1769482,1769510,1769496' '$\r$\n20,19' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '2979,104,0' '$\r$\n4510,141,0' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1130,37,0' '$\r$\n1257,37,0' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '719,30,0' '$\r$\n777,30,0' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '521,9,0' '$\r$\n564,9,0' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '3887,126,0' '$\r$\n4279,126,0' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '2419,65,0' '$\r$\n2624,65,0' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '5,0,81640,1315,1,0' '$\r$\n5,0,78750,1315,1,0' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1967,1972,1973,1977,2003' '$\r$\n1967, 1972, 1973, 1977, 2003' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1988,1992,1993,1994,2004' '$\r$\n1988, 1992, 1993, 1994, 2004, 2011' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1998,5,0,0' '$\r$\n1998,0,5,0' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '27,54' '$\r$\n27,0' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '5,8,7,3,4,2' '$\r$\n6,8,8,5,2,2' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"AC Mailand"' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"AC Mailand"' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"AC"' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"Mailand"' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"Milan-Spieler"' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"Mailänder"' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"","","","","",""' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"Milan-Fans"' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"AC-Fans"' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '"San Siro "' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" 'Via Fillippo Turati - Milano' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1769479,1769481,1769482,1769476,1769487' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '2979,104,0' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1130,37,0' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '719,30,0' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '521,9,0' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '3887,126,0' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '2419,65,0' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '5,0,81640,1315,1,0' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1967,1972,1973,1977,2003' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1988,1992,1993,1994,2004' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '1998,5,0,0' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '27,54' '' $R1
${ConfigWriteS} "$FM13DDA\CountryData27.sav" '5,8,7,3,4,2' '' $R1
${LineFind} "$FM13DDA\CountryData27.sav" "" "3280 3291:3293 3297" "LNE_DEL"
Signatur von »Micha«
carpe diem, quam minimum credula postero

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Micha« (30. Januar 2013, 14:26)


2

Mittwoch, 30. Januar 2013, 18:38

Das klingt ja wie der Traum eines jeden Datenbanklers 8o
Wenn das alles so funktioniert wäre das super.

Falls man dir i-wie helfen kann, sag Bescheid :thumbup:

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

3

Donnerstag, 31. Januar 2013, 08:45

Danke dir für das Hilfeangebot.
Doch leider kann man da nur als Einzelkämpfer rangehen. ;)

Die Stammdaten der Vereine und Ligen habe ich ja hier vorliegen und muss die eben Schritt für Schritt und voll konzentriert in den Code der Anwendungsskripte einfügen.
Das kann man halt nur alleine machen. :)
Signatur von »Micha«
carpe diem, quam minimum credula postero

4

Donnerstag, 31. Januar 2013, 11:12

Wow Micha, ein Wahnsinn für jeden Datenbankeditierer, finde ich klasse! :thumbup: :thumbup: :thumbup: :thumbup:

MaGnaz

Landesklasse

Beiträge: 392

Registrierungsdatum: 11. Juni 2011

Lieblings-FM: Fußball Manager Alle

  • Nachricht senden

5

Freitag, 1. Februar 2013, 13:56

Micha du bist einfach nur krass...
Ich bin gespannt, wenn es dann in Zukunft irgendwann komplett ist!

Geiles Ding.

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

6

Sonntag, 3. Februar 2013, 20:28

Danke. :)

Momentan geht es ganz gut voran, auch wenn es hier und da immer wieder Rückschläge bezüglich der Funktionalität gibt.
Im Großen und Ganzen steht das Grundkonstrukt aber und die Dateneingabe in das Basisskript geht stetig voran.
Wie es die Zeit eben zulässt, oder, je nach dem, wie Lust und Laune vorhanden ist. ;)
Signatur von »Micha«
carpe diem, quam minimum credula postero

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

7

Mittwoch, 20. Februar 2013, 17:33

So, wieder mal was Neues von der "Editier-Front". :ugly:

Die Entwicklung des besagten Tools hatte vor einigen Wochen bereits "Alpha-Status" erreicht und stand kurz vor der Fertigstellung.
Gestört hatte mich aber nach wie vor die doch immer noch relativ langen Arbeitsprozesse bei Aktivität der Anwendung.
Das hatte mich dazu veranlasst, das gesamte Konzept wieder über den Haufen zu werfen und ganz von vorne anzufangen.
Und siehe da, der Aufwand hat sich gelohnt.

Vorher wurden die Zeilen in den .sav-Skripten einzeln und hintereinander eingelesen. Vom Anfang bis zum Ende. Egal, ob nun 10 oder 500 Zeilen editiert werden sollten.
In dem Italien-Skript zum Beispiel sind das mal locker über 200.000 Zeilen.
Deshalb auch dieser unverhältnismäßig hohe Zeitaufwand bei den automatisierten Arbeitsabläufen.

Dann kam ich auf die Idee, ganze Teilbereiche des Skripts auf einmal einlesen zu lassen. Teilbereiche, in denen sich zu bearbeitende Daten befinden, egal wie viele.
Und das hat die zeitlichen Abläufe drastisch reduziert.
Zur Verdeutlichung:
Vorher dauerte ein Arbeitsgang mit 10 Vereinen ca. 30 Minuten. Zwischenzeitlich brachte ich es runter auf 20 Minuten.
Aktuell dauert ein Arbeitsprozess mit 10 Vereinen, inklusive der nationalen Wettbewerbe und der Relegationsmodi, noch keine 5 Minuten.
Für eine komplette Liga wären das mit allem Drum und Dran ca. 30 Minuten Editierzeit, die das Tool voll automatisiert verrichtet.
Damit kann man sehr gut leben, so denke ich.

Ich bleibe dran an der Sache und die Autoren von FMT dürfen sich schon jetzt freuen wie die Schneekönige. :D

--------------------------------------------------------------

Hier mal ein Screenshot, welcher meine Arbeitsumgebung darstellt:

Signatur von »Micha«
carpe diem, quam minimum credula postero

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Micha« (20. Februar 2013, 17:33)


Kitt

V.I.P.

Beiträge: 6 020

Registrierungsdatum: 16. August 2007

  • Nachricht senden

8

Mittwoch, 20. Februar 2013, 17:39

Mag jetzt zwar etwas blöd klingen, aber ich verstehe den Sinn dieses Tools bzw. wie es das Editieren vereinfach soll noch nicht so wirklich :P

Also nochmal für langsame Mitbürger? :)

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

9

Mittwoch, 20. Februar 2013, 17:44

Steht doch im Eingangspost dieses Threads. :D

Zusammengefasst soll das Tool die Editiervorgänge, die Stammdaten betreffend, automatisieren und vor allem unabhängig von den offiziellen Datenbankupdates machen, die die Daten jedes Mal komplett überschreiben und stundenlange und mühevoll verrichtete manuelle Editierarbeit zunichte machen.
Signatur von »Micha«
carpe diem, quam minimum credula postero

Beiträge: 15 866

Registrierungsdatum: 23. Februar 2008

Lieblings-FM: FM10

  • Nachricht senden

10

Sonntag, 24. Februar 2013, 01:53

Oder nochmal anders ausgedrückt, weil ich es auch erst nicht geblickt habe ... man kann dieses Tool einsetzen, um die VEREINSDATEN immer wieder neu (und vorallem fertig editiert) einzuspielen ohne dass dadurch die SPIELDERDATEN berührt werden. Heisst dann auf dem Punkt gebracht: Updates von EA (auch Live Season) plus dieses Tool und die Datenbank ist immer schick editiert und top aktuell.

Einziger Haken den ich ungeprüft sehe ist, wenn EA Vereins-IDs ändert. Sei es nun durch ein Update oder aber auch in der neuen FM-Version im Herbst.

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

11

Sonntag, 24. Februar 2013, 11:45

Exakt. :thumbup:

Einziger Haken den ich ungeprüft sehe ist, wenn EA Vereins-IDs ändert. Sei es nun durch ein Update oder aber auch in der neuen FM-Version im Herbst.

Nein, das ist kein Problem.
Das Programm sucht in den .sav-Skripten nach den realen Vereinsnamen und ermittelt dann die entsprechende Zeilennummern in dem gewünschten Bereich, auf deren Grundlage dann die Daten editiert werden.

Die Daten der einzelnen Vereine befinden sich immer zwischen den Markierungen
%INDEX%CLUB1...2...3 usw.
und
%INDEXEND%CLUB1...2...3 usw.

Genau deshalb ist es kein Problem bei evtl. Änderungen der Vereins-IDs oder sonstiger Daten durch den Entwickler.
Ich habe bereits verschiedene Szenarien durchexerziert und dahingehend keine Probleme festgestellt.

Die einzige Sache, die mir im Grunde "Sorge" bereitet, ist, dass es keine Fortsetzung der FM-Serie geben wird.
Es deutet zumindest einiges darauf hin.
Signatur von »Micha«
carpe diem, quam minimum credula postero

12

Sonntag, 24. Februar 2013, 23:50

Auf Micha ist halt Verlass und er denkt an die Editier Szene des FM und die User! Sehr löblich Micha. :thumbup: :thumbup:

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

13

Mittwoch, 20. November 2013, 14:53

Ich habe das Thema wieder aufgegriffen und arbeite daran, soweit ich Zeit finde.

Signatur von »Micha«
carpe diem, quam minimum credula postero

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

14

Sonntag, 29. Dezember 2013, 14:54

Die Sache schreitet weiter voran und mittlerweile gibt es einen echten Meilenstein, was die Geschwindigkeit der Datenbearbeitung betrifft.

Vorher dauerte die Modifizierung einer der sehr großen Datenbanken, wie etwa die von Italien, Deutschland oder Spanien, etwa bis zu 35 Minuten.
Das war mir eindeutig zu lange.
Jetzt kommt mir meine Tätigkeit als Softwareentwickler zugute.

Ich habe dahingehend ein kleines aber äußerst mächtiges Werkzeug erstellt, das bewirkt, dass die Modifizierung selbst großer Datenbankfiles jetzt keine 5 Sekunden (!!) in Anspruch nimmt.

Das heißt, dass z.B. die Massenbearbeitung von sämtlichen Ländern Europas, das sind 52 Stück an der Zahl, innerhalb von maximal 20 Sekunden oder weniger erledigt sein wird.
Und das mit nur ein paar Mausklicks.

Ich bin echt begeistert. ^^
Schade, dass die FM-Serie nicht mehr weitergeführt wird und schade, dass ich nicht viel früher auf diese Sache gekommen bin.
Das hätte den DB-Autoren eine Menge Zeit erspart. :pardon:
Signatur von »Micha«
carpe diem, quam minimum credula postero

Beiträge: 15 866

Registrierungsdatum: 23. Februar 2008

Lieblings-FM: FM10

  • Nachricht senden

15

Montag, 30. Dezember 2013, 07:44

Ich muss mal nachfragen ... deine Datenbank enthält doch die realen Vereinsdaten, unabhängig vom Kader. Sprich, die Vereinsbezeichnung, Abkürzungen, Adresse, Stadion und so weiter. Diese Datenbank anzulegen dauert doch immens lange. Vergleichbar mit einem File. Und das allein für Europa 53 Mal. Kann man dich da nicht unterstützen?

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

16

Montag, 30. Dezember 2013, 10:59

ch muss mal nachfragen ... deine Datenbank enthält doch die realen Vereinsdaten, unabhängig vom Kader. Sprich, die Vereinsbezeichnung, Abkürzungen, Adresse, Stadion und so weiter.

Richtig.
Ich habe sämtliche realen Daten, die für den FM möglich sind, in .ini- und .xml-Dateien gesammelt und archiviert.
Also sämtliche Daten Europas, Süd,- Nord,-Mittelamerikas, Ozeaniens, Afrikas und Asiens.
Die sind das Grundgerüst.

Diese Datenbank anzulegen dauert doch immens lange.

Die Datenbanken sind angelegt. Damit bin ich bereits seit einiger Zeit fertig.
Aufwändig war nur das Sammeln bzw. Vervollständigen der Daten via Internet.
Danach war es eigentlich nur stupides "copy&paste". Was aber auch sehr zeitaufwändig war.

Kann man dich da nicht unterstützen?

Sehr nett gemeint, vielen Dank.
Aber dabei kann mir niemand mehr helfen.

Die vorliegenden Datenbanken müssen jetzt "nur noch" Zeile für Zeile mit Variablen verbunden werden.
Das ist reine Codierarbeit und da muss jedes einzelne Satzzeichen, jeder Wert und jeder Buchstabe haargenau übereinstimmen.
Ansonsten wird die gesamte Datenbank verworfen und es kommt zu Fehlern.
Signatur von »Micha«
carpe diem, quam minimum credula postero

Beiträge: 15 866

Registrierungsdatum: 23. Februar 2008

Lieblings-FM: FM10

  • Nachricht senden

17

Montag, 30. Dezember 2013, 11:00

Aufwändig war nur das Sammeln bzw. Vervollständigen der Daten via Internet.
Das meinte ich. Da hätten wir dich tatkräftig unterstützen können.

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

18

Montag, 30. Dezember 2013, 19:13

Zu den Datensätzen noch ein Hinweis.

Ich habe mich vorerst nur auf die absoluten Grunddaten beschränkt.
Erweiterte Daten wie Adressen, Fanrivalitäten/Fanfreundschaften, Stadionumfeld/Stadionkapazität etc. pp. sind nicht berücksichtigt, kann man aber später immer noch dazunehmen. Macht dann aber wieder sehr viel Codierarbeit erforderlich.

Grunddaten sind:
-Namen der Ligen und Pokalwettbewerbe anpassen / nicht vorhandene Pokalwettbewerbe ergänzen / teilweise play-offs; play-outs eingefügt.
-Vereinsdaten: Langnamen, Kurznamen, Kürzel, Stadtnamen, Stadionnamen.
-Fehlerkorrektur
Signatur von »Micha«
carpe diem, quam minimum credula postero

19

Montag, 30. Dezember 2013, 19:48

Das hört sich echt ziemlich gut an alles :D

Ich finde das wird gerade jetzt interessant, wenn man nur noch die Kader immer wieder neu erstellen würde, da ja keine neuen FMs mehr hinzukommen.

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

20

Montag, 30. Dezember 2013, 21:15

Ja, das ist eine feine Sache, wenn es dann im Endergebnis fehlerfrei funktionieren sollte. :D
Der große Aufwand bei der Vorarbeit lohnt sich nur dann, wenn das Ziel, in Sekundenschnelle und mit nur wenigen Mausklicks sämtliche Datensätze zu modifizieren, ohne den kleinsten Fehler, erreicht ist.

Ohne den kleinsten Fehler deshalb, weil jede auch nur kleinste Schludrigkeit fatale Auswirkung hat.
Jedes Weglassen oder zu viel Einfügen z.B. eines Anführungszeichens, oder das Verrutschen in einer Zeile, hat zur Folge, dass das gesamte Script zerschossen wird.
Jede Datensatzzeile in dem Script muss mit der in die Variable übernommene haargenau übereinstimmen.

Häufigste Fehlerquellen, mit fatalen Auswirkungen:

Doppelte Anführungszeichen durch einen Übertragungsfehler:

Quellcode

1
""A. Nikosia"",""A. Nicosia"",""A. Nicosie"",""A. Nicosia"",""A. Nicosia"",""A. Nicosia""


Oder das Weglassen nur eines der Anführungszeichen am Anfang oder Ende des Datensatzes, durch eine Schludrigkeit beim Übertragen:

Quellcode

1
A. Nikosia","A. Nicosia","A. Nicosie","A. Nicosia","A. Nicosia","A. Nicosia"


Oder das Verrutschen einer Datenzeile, wodurch eine Leerzeile eingefügt wird:

Quellcode

1
2
3
"A. Nikosia","A. Nicosia","A. Nicosie","A. Nicosia","A. Nicosia","A. Nicosia"

"Nikosia","Nicosia","Nicosie","Nicosia","Nicosia","Nicosia"


All das hat zur Folge, dass das gesamte Script nicht mehr funktioniert und Ausgabefehler produziert werden.
Das ist der blanke Wahnsinn. :D


Es werden außerdem auch keine sog. "Wildcards" von den FM-Scripten akzeptiert. Wildcards werden mit Sternchen * markiert und bewirken, dass man nicht die komplette Zeile eingeben muss.
So zum Beispiel sähe das aus:

Ohne Wildcard:

Datenzeile im Script:

Quellcode

1
0B000000,"Wettbewerb","Wettbewerb","Wettbewerb","Wettbewerb","Wettbewerb","Wettbewerb"

Übernommener Wert in der Variablen "$Data1":

Quellcode

1
0B000000,"Wettbewerb","Wettbewerb","Wettbewerb","Wettbewerb","Wettbewerb","Wettbewerb"


Mit Wildcard:

Datenzeile im Script:

Quellcode

1
0B000000,"Wettbewerb*

Übernommener Wert in der Variablen "$Data1":

Quellcode

1
0B000000,"Wettbewerb","Wettbewerb","Wettbewerb","Wettbewerb","Wettbewerb","Wettbewerb"


Das funktioniert aber leider nicht mit den altbackenen FM-Scripten.


Ich hatte schon mal einen Testlauf durchgeführt und dabei "Platzhalter" anstelle der Originaldaten verwendet.
Das hat sehr gut funktioniert.
Es soll und muss aber dann letzendlich auch mit den realen Daten klappen.
Signatur von »Micha«
carpe diem, quam minimum credula postero

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

21

Dienstag, 14. Januar 2014, 19:02

15 Länder sind mittlerweile eingetütet.
Zur Zeit beiße ich mir an Estland die Zähne aus und bekomme immer wieder Meldungen über Fehler, die ich aber bisher ums Verrecken nicht aufspüren konnte. :spite:
Signatur von »Micha«
carpe diem, quam minimum credula postero

22

Dienstag, 14. Januar 2014, 19:39

Ich hab da generell jetzt weniger Ahnung von deinem Code in diesem Fall, aber ich denke mal, dass dein Syntax ja soweit in Ordnung sein dürfte, da er sich ja quasi immer wiederholt.
Deswegen rate ich mal einfach ins Blaue hinein, an Sonderzeichen kann es nicht liegen, oder? Gerade bei Estland kann das ja durchaus sein ^^ .

Aber da kamen ja schon ganz andere Länder vorher... :pardon:

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

23

Dienstag, 14. Januar 2014, 19:51

Der Syntax funktioniert ohne Fehl und Tadel. Deaktiviere ich Estland, läuft alles reibungslos ab.
An den Sonderzeichen liegt es definitiv nicht, da der von mir integrierte Editor Unicode unterstützt.

Das Problem ist, dass im Moment nicht alle Vereine Estlands editiert werden. Sämtliche Tallinner Vereine sind betroffen.
Die Daten aller anderen Vereine werden ohne Probleme editiert.
Die Fehlermeldung bezieht sich immer auf Übertragungs- bzw. Lesefehler. Ist unterschiedlich, je nach betroffenem Veein.

Aber okay, ich kriege das schon hin. Nur heute nicht mehr. ^^
Signatur von »Micha«
carpe diem, quam minimum credula postero

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

24

Freitag, 21. Februar 2014, 16:19

Einige Wochen lang lag diese Sache nun auf Eis.
Zum einen aus Zeitgründen, zum anderen aber auch deshalb, weil ich diesen Fehler beim Einlesen nicht finden konnte.

Jetzt wurde der Fehler gefunden und die Sache kann nun weitergehen.
Ein Kollege, der vor kurzem bei uns zu Besuch war und ich ihn, rein zufällig und keine Ahnung warum, auf das Problem ansprach, entpuppte sich als rettender Engel. ^^
Innerhalb einer Viertelstunde war die Sache erledigt. Wahnsinn! :D

Ein kleines und auf Windows Powershell basierendes Script schaffte Abhilfe.
Dieses Script sorgt vor jedem Lesevorgang dafür, dass die FM-Skripte nach von meinem selbstentwickelten Tool nicht lesbaren Sonderzeichen durchsucht und dann ggf. in ein für mein Tool lesbare Kodierung (UTF-7 ) konvertiert werden. Danach versetzt es das Skript wieder in die urprüngliche Kodierung (UTF-8 ).

Es handelt sich dabei unter anderem um dieses Zeichen, das nicht ausgelesen werden konnte:

í
Signatur von »Micha«
carpe diem, quam minimum credula postero

25

Freitag, 21. Februar 2014, 18:05

Deswegen rate ich mal einfach ins Blaue hinein, an Sonderzeichen kann es nicht liegen, oder?

**whistle**

Schön, dass es jetzt weiter geht :thumbup:

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

26

Freitag, 21. Februar 2014, 18:45

Es ist ja nun so, dass das Schreiben der Sonderzeichen funktioniert. :D
Deshalb kam ich nicht auf die Idee, dass es beim Lesen Probleme geben könnte.

Ist ja eigentlich auch unlogisch, jedenfalls nach meinem Verständnis. Entweder, die Textkodierung wird erkannt, oder eben nicht.
Dass es dabei Unterschiede bezüglich des Lesens und des Schreibens geben könnte, hätte ich jetzt nicht für möglich gehalten.
Aber okay, man lernt ja nie aus. ^^
Signatur von »Micha«
carpe diem, quam minimum credula postero

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

27

Montag, 3. März 2014, 15:10

Ich stelle das komplette Projekt ab sofort auf Windows Powershell um.
WPS basiert auf .NET Framework und ähnelt der Programmiersprache C#.
WPS ist ein mächtiges Werkzeug und ist in Sachen Scripting mit sehr sehr vielen Möglichkeiten ausgestattet.

Mittlerweile bin ich dahingehend soweit fit, dass ich die Sache auf dieser Basis angehen kann.
Signatur von »Micha«
carpe diem, quam minimum credula postero

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

28

Dienstag, 18. März 2014, 10:41

Ein kurzer Einblick in einen klitzekleinen Bereich des Codes, unter Verwendung von Windows Powershell:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Function Main
{
	#Interface
	Add-Type -Name Window -Namespace Console -MemberDefinition '
	[DllImport("Kernel32.dll")]
	public static extern IntPtr GetConsoleWindow();
	
	[DllImport("user32.dll")]
	public static extern bool ShowWindow(IntPtr hWnd, Int32 nCmdShow);
	'
	$consolePtr = [Console.Window]::GetConsoleWindow()
	[Console.Window]::ShowWindow($consolePtr, 0)
	
	#Konfiguration
	$File = ".\CountryData15.sav"
	$FileBackup = ".\BackupData15.sav"
	
	Copy-Item -Path $File -Destination $FileBackup
	
	$Lines = Get-Content -Path $File
	
	Estland
}	
Function Estland
{
	#Wettbewerbe
	$Cmp = "%INDEX%COUNTRY","%INDEX%CLUBS"
	$CmpIn = "%INDEX%COUNTRY"
	$CmpOut = "%INDEX%CLUBS"
	$idx = [array]::IndexOf($Cmp,$CmpIn)
	$idx = [array]::LastIndexOf($Cmp,$CmpOut)
	$Ary[$idx]
	$n1 = '"A. Le Coq Premium Liiga"'
	$n2 = "5"
	$n3 = "0F010000"
	$n4a = "0F030000"
	$n4b = '"Eesti Karikas"'
	$n5a = "0F070000"
	$n5b = '"Eesti jalgpalli superkarikas"'
	$n6 = "15"
	#
	$in=0
	Do {$Ary[$idx];$in++}
	Until ($in -lt $CmpOut)
	if ($CmpIn -eq "%INDEX%COUNTRY") 
	{
		$in+=6
		$Lines[$in] = "$n1," + "$n1," + "$n1," + "$n1," + "$n1," + "$n1"
		$in+=1
		$Lines[$in] = $n2
		$in+=2
		$Lines[$in] = "$n3," + "$n1," + "$n1," + "$n1," + "$n1," + "$n1," + "$n1"
		$Lines[$in] += "`n$n4a," + "$n4b," + "$n4b," + "$n4b," + "$n4b," + "$n4b," + "$n4b"
		$Lines[$in] += "`n$n5a," + "$n5b," + "$n5b," + "$n5b," + "$n5b," + "$n5b," + "$n5b"
		$in+=3
		$Lines[$in] = $n6
	}
	else
	{
		[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
		$OUTPUT = [System.Windows.Forms.MessageBox]::Show("Unbekannter Fehler im Skript Estland!`nSkript konnte nicht editiert werden." , "Achtung!!", 0,[System.Windows.Forms.MessageBoxIcon]::Stop)
			if ($OUTPUT -eq "OK" )
			{
				Exit
			}
	}
	#Ende
	$Lines | Set-Content -Path $File -Encoding UTF8
}
Main


###########################################################

Ich habe nun mehrere Testläufe absolviert und dabei das Augenmerk vor allem auf die Abläufe der einzelnen Prozesse gerichtet.
Außerdem natürlich auf Funktionalität und Bedienerfreundlichkeit.

Tja, zum ersten Mal überhaupt trat bei den Testabläufen nicht ein einziger Fehler auf und das gleich auf Anhieb.
Fehlgeleitete oder falsche Einzelabläufe kamen diesmal auch nicht vor. Was bei vorherigen Testabläufen eigentlich immer der Fall war..
Das ist schon mal sehr vielversprechend.

Jetzt verfeinere ich noch ein paar Kleinigkeiten und dann fange ich mit der Eingabe der Daten in die Steuerungsskripte an.
Muss ich alles nochmal eingeben, da ich ja, wie angemerkt, alles nur noch via PS mache und die Funktionen eine andere Struktur haben.

Leider kann man das nur solo machen, ansonsten hätte ich euch schon längst um Hilfe gebeten.
Ich hoffe, das ganze Projekt bis zu Beginn der neuen Fußballsaison 14/15 komplett fertig und voll einsatzbereit zu haben.
Vorher gibt es aber sicher für alle die Möglichkeit, in den einzelnen Phasen die entsprechenden Beta-Versionen auszuprobieren.

Zeitlich schneller zu entwickeln geht leider nicht, da die Sache sehr zeitaufwändig ist und ich dafür aber leider nur begrenzt Freizeit investieren kann.
Signatur von »Micha«
carpe diem, quam minimum credula postero

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Micha« (18. März 2014, 10:41)


29

Dienstag, 18. März 2014, 12:47

Vorher gibt es aber sicher für alle die Möglichkeit, in den einzelnen Phasen die entsprechenden Beta-Versionen auszuprobieren.

Spätestens da bin ich dabei :thumbup:

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

30

Dienstag, 15. April 2014, 16:58

So sieht das mittlerweile aus:

Signatur von »Micha«
carpe diem, quam minimum credula postero

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

31

Freitag, 6. Juni 2014, 13:12

Ich hatte es bereits im Spam-Thread gepostet und möchte auch hier nochmal darauf hinweisen.
Vor allem deshalb, weil diese Sache hier im Moment auf Eis gelegt werden musste und der Grund dafür krankheitsbedingte Ursachen sind.

Zitat

Komme gerade vom Orthopäden. Der Termin für meine Bandscheiben-OP steht fest. Ende August geht es unters Messer. ;(
Hoffentlich ist danach Ruhe und die phasenweise nahezu unerträglichen Rückenschmerzen sind Geschichte.
Einigermaßen schmerzfrei bin ich im Moment eigentlich nur dann, wenn ich liege oder stehe.

Nach etwa 20 Minuten am Schreibtisch sitzend sind die Schmerzen nicht mehr zu ertragen.
Dabei konzentriert arbeiten bzw. programmieren ist zur Zeit einfach nicht drin.
Deshalb ist auch meine Nebentätigkeit momentan auf Eis gelegt.


Das geht mittlerweile schon seit mehreren Monaten und es fiel mir im Laufe der Zeit immer schwerer, mich für einen längeren, zusammenhängenden Zeitraum an den PC zu setzen und konzentriert zu arbeiten. Was vor allem für diese Geschichte hier unabdingbar ist.
Die Erhöhung der Fehlerquote hatte dies leider bestätigt.

Aufgeschoben ist aber nicht aufgehoben und ich werde mich ganz sicher wieder mit vollem Elan an die Arbeit machen, wenn ich das wieder einigermaßen schmerzfrei tun kann.
Ich hoffe, ihr habt Verständnis.
Signatur von »Micha«
carpe diem, quam minimum credula postero

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

32

Montag, 6. Oktober 2014, 11:17

Ich hatte mir vorgenommen, dieses Projekt irgendwann wieder aufzunehmen und demzufolge weiter- und letztendlich, möglichst relativ zeitnah, zu Ende zuführen.
Jetzt wäre ich dann wieder soweit.

Wie sieht es aus? Besteht überhaupt noch Bedarf und ergäbe eine Fortsetzung überhaupt einen Sinn?
Bei entsprechenden Rückmeldungen würde ich mich dann wieder an die Arbeit machen.
Ich muss mich da zwar erst wieder reinfuchsen, doch das dürfte ich ohne größere Probleme hinbekommen.
Signatur von »Micha«
carpe diem, quam minimum credula postero

33

Montag, 6. Oktober 2014, 12:24

Also ich wäre da durchaus sehr interessiert dran.
Wobei ich nicht weiß, in wie weit man das jetzt noch nutzen müsste, da ja keine offiziellen Updates bzgl Spielertranfers kommen.

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

34

Sonntag, 1. März 2015, 13:13

Oha, deinen Post habe ich doch glatt übersehen. Sorry. :pardon:
Ist ja erst 5 Monate her. ^^

Die Sache hat sich erledigt.
Einerseits ergibt es aufgrund der gegebenen Umstände keinen Sinn mehr und zum Anderen fehlt mir zur Zeit grundsätzlich die Motivation für solche Vorhaben.
Vielleicht im nächsten Leben. :D
Signatur von »Micha«
carpe diem, quam minimum credula postero

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

35

Samstag, 8. August 2015, 13:52

Nichts ist so unbeständig wie das Geschwätz von gestern. :D
Ich habe vor, mich dieser Sache wieder zu widmen. Hoffentlich finde ich den Einstieg wieder. In meinem Alter vergisst man ja leider sehr schnell viele Dinge wieder. :ugly:

Meine Frage an die aktuellen Zocker des FM:
Bezieht sich diese gemoddete FM-Version (Startjahr) auf die originale Version des FM 13 oder auf den FM 14?
Signatur von »Micha«
carpe diem, quam minimum credula postero

36

Sonntag, 9. August 2015, 13:43

Hi Micha,

ich freue mich über deinen Ehrgeiz dies wieder anzupacken.
Also das Startdatrumsfile basiert auf dem FM 13 da er stabiler läuft damit, aber es geht auch mit dem FM 14.

Gruß Flo

Micha

V.I.P.

  • »Micha« ist der Autor dieses Themas

Beiträge: 9 851

Registrierungsdatum: 9. März 2007

Lieblings-FM: FM 10

  • Nachricht senden

37

Sonntag, 9. August 2015, 15:23

Alles klar, ich danke dir. :thumbup:
Signatur von »Micha«
carpe diem, quam minimum credula postero

Ähnliche Themen