| |
|
|
Torsten | Hallo ich mach es mal kurz und poste mal den link hier um mein problem nicht wieder von vorn zu erläuter (hoffe das geht io?) [...]
ich hoffe das mir hier einer so ein program programieren kann, wenn ich das weiter versuche .dauert es zu lange(dann kann es seine ich spiele das game nicht mehr)
daher bitte ich um hilfe
mfg Torsten |
|
|
| |
|
|
|
Rolf Koch | Hallöchen,
ich hab mal kurz etwas geschrieben, was funktionieren sollte. Vieles ist verkürzbar, aber damit Du es hoffentlich verstehst hab ich Schritt für Schritt gearbeitet. Aber denk bitte daran: Nicht einfach von uns hier einen Code vorgeben lassen und damit ist alles erledigt, sondern auch versuchen zu verstehen was da steht und weiterentwickeln (vielleicht sogar verbessern, da dies wie üblich schnell runtergetippt wurde und bestimmt hier und da Verbesserungen benötigt) KompilierenMarkierenSeparieren $P+
SetErrorLevel 0
********************** HINWEISE ********************************
CODE ERZEUGT MIT ROKOS OBJECT CREATOR 4.3a
DATUM 29.01.2006 um 11:07 Uhr
VERWENDETE PROFANVERSION IST 8.0-NT XPROFAN
CODE ERSTELLT UNTER WINDOWS XP
!!! Dieser Code wird von Roc immer neu erzeugt !!!
!!! Erst bearbeiten, wenn alle Objekte erzeugt wurden !!!
!!! Verändern Sie ggf. feste Pfade in variable Pfade !!!
DEF GETSYSCOLOR(1) !"USER32","GetSysColor"
DECLARE Ausgabe&,Sortieredit&
DECLARE InsEdit&,X%
DECLARE InText&,ZEILE$,ZEILE2$
DECLARE Programmende&,Y%
Declare Ausgabedatei$
WINDOWSTYLE 63
WINDOWTITLE "Game Tool"
WINDOW 171,165-598,350
SETTRUECOLOR 1
DECLARE ENDE%
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
Die Textdatei angeben:
Ausgabedatei$="C:\GAMETOOL.TXT" Beispiel
PROC ENTFERNE_BUTTONS
PARAMETERS Z$
WHILE INSTR("[",Z$)
z$=del$(z$,instr("[",z$), instr("]",z$)-instr("[",z$)+1)
WEND
return z$
ENDPROC
Alles aufbereiten und in die Ausgabe:
PROC PUTTOEDIT
if mid$(getclip$(),1,4) = "5x34" nur zulassen wenn Daten im Clipboard den richtigen entsprechen
sendmessage(Ausgabe&,$0184,0,0) liste zuerst löschen
SETTEXT Sortieredit&,getclip$()
CLEAR X%
WHILENOT X% > GetLineCount(Sortieredit&)
ZEILE$=GetLine$(Sortieredit&,X%)
IF mid$(zeile$,1,4) = "5x34"
ZEILE2$=trim$(ZEILE$)
ENTFERNE_BUTTONS ZEILE2$
Zeile2$ = $(0)
IF mid$(GetLine$(Sortieredit&,X%+1),1,4) = "5x34"
addstring(Ausgabe&,zeile2$)
Endif
ELSE
ZEILE2$=ZEILE2$+" "+ZEILE$
ENTFERNE_BUTTONS ZEILE2$
Zeile2$ = $(0)
addstring(Ausgabe&,zeile2$)
if mid$(GetString$(Ausgabe&,GetCount(Ausgabe&)-2),1,6) = mid$(zeile2$,1,6)
DeleteString(Ausgabe&,GetCount(Ausgabe&)-2)
endif
ENDIF
inc x%
WEND
enablewindow InText&,1
Else
addstring(Ausgabe&,"Falsches Datenformat!")
Endif
ENDPROC
Ausgabe in Textdatei schreiben:
PROC PUTTOTEXT
ASSIGN #1,AUSGABEDATEI$
REWRITE #1
clear x%
Whilenot x% > GetCount(Ausgabe&)
Print #1,GetString$(Ausgabe&,x%)
inc x%
Wend
CLOSE #1
Messagebox("Daten wurden in "+Ausgabedatei$+" gespeichert!","Gespeichert",0)
ENDPROC
Dieses Multiedit um vorher zu sortieren:
Sortieredit&=CREATE("MULTIEDIT",%HWND,"",0000,0000,0000,0000)
Ausgabe& = CREATE("LISTBOX",%HWND,"",0006,0006,0576,0265)
InsEdit& = CREATE("BUTTON",%HWND,"Daten ins Edit",0010,0281,0089,0030)
InText& = CREATE("BUTTON",%HWND,"Daten in Textdatei",0110,0281,0106,0030)
enablewindow InText&,0
Programmende& = CREATE("BUTTON",%HWND,"Ende",0463,0281,0116,0030)
SETFOCUS(%HWND)
WHILENOT ENDE%
WAITINPUT
If @EQU(%KEY,2)
LET ENDE%= 1
ELSEIF @EQU(%KEY,4)
ELSEIF GETFOCUS(Ausgabe&) MULTIEDIT
ELSEIF GETFOCUS(InsEdit&) BUTTON
Getmessage
PUTTOEDIT
ELSEIF GETFOCUS(InText&) BUTTON
Getmessage
PUTTOTEXT
ELSEIF GETFOCUS(Programmende&) BUTTON
ENDE%=1
ENDIF
WEND
Hoffe es trifft zu, was ich da zusammengekloppt habe Wichtig hier ist auch das Format, wie Du es vorgegeben hast.
Nachtrag: Hab grad noch gesehen, das sich 5x34 verändern kann. Da müsstest Du Dir dann noch was überlegen oder erkläre einfach mal wie die Daten zustande kommen. Bedeutet, es kann nur mit den vorgegebenen Daten im Profan.de Forum so wie es hier jetzt ist funktionieren. Also wirklich zu erweitern!!!
Rolf |
|
|
| |
|
|
|
Torsten | Hallo Rolf,
erstmal danke für deine schnelle hilfe
zu erklärung:
die daten können sich ändern fangen an mit 1x1x1 und können gehn bis 17x500x25
die daten übernehme ich aus der html-seite des games (dort gibt es eine koordinaten übersicht)
anhand der daten menge wollte ich diese übersicht peer copy&paste in das program laden
da es aber aus einer html seite kommt sind die daten durcheinander beim eintragen (etwa so): [quote:45ed5824ec] 12x45x1 12x45x2 plani1 [Handel] 12x45x3 Hase 1035.000 [Spionagesonde] [Handel] [Observerdrohne] 12x45x4 ABC-Ally [ABC] Eisman 5236.590 [Handel] 12x45x5 12x45x6 12x45x7 plani [RtF] Bluni 12693.075 [Name ändern] 12x45x8 12x45x9 [/quote:45ed5824ec] [quote:45ed5824ec]geordnet: 12x45x1 12x45x2 plani1 [Handel] 12x45x3 Hase 1035.000 [Spionagesonde] [Angriff] [Handel] [Observerdrohne] 12x45x4 ABC-Ally [ABC] Eisman 5236.590 [Handel] 12x45x5 12x45x6 12x45x7 plani [RtF] Bluni 12693.075 [Name ändern] 12x45x8 12x45x9[/quote:45ed5824ec] [quote:45ed5824ec]bedeutung der einzelnen wichtigen daten (beispiel) :
3x23x24 Global [-AZ-] Peterle 2973.340
zerlegt nach bedeutung: 3x23x24 = koordinaten
Global = Planiname
[-AZ-] = ally
Peterle = name des spielers
2973.340 = punkte[/quote:45ed5824ec] aus dem program raus sollte man das ordnen nach ally , koordinaten bezw suche nach namen und koordinaten sollten möglich sein
durch das programm muss man nicht online erst alle syteme durchblättern wenn man bestimmte koordinaten sucht und würde das spiel stark vereinfachen
hoffe es ist verständlich und hilft ein wenig
mfg Torsten |
|
|
| |
|
|
|
Rolf Koch | naja Torsten, dann sind wir ja auf dem richigen Weg gewesen. Du solltest jetzt: - anstatt z.B. Mid$ und 5x34 versuchen per instr(...) zu schauen ob das x zweimal vorkommt und dann sollte es so klappen. Desweiteren am Schluss versuchen die Daten so aus einer Zeile zu filtern, dass es in dem Format vorliegt, wie Du es gerne möchtest.
Bitte auch etwas Eigeninitiative. Ich konnte es früher auch nicht und hab es durch LearningbyDoing gelernt und nicht durch sagen: Schreibt mir einer ein Programm.
Rolf |
|
|
| |
|
|