Doppelte Pref Auslesung

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Doppelte Pref Auslesung

Beitrag von Green Snake »

hi

habe mal wieder ne frage, die sich um das auslesen von pref dreht....
habe folgende pref datei erstellt, hier die ersten 20 zeilen

Code: Alles auswählen


#1 = 239,231
#2 = 245,239
#3 = 246,242
#4 = 248,248
#5 = 248,249
#6 = 246,258
#7 = 244,260
#8 = 242,266
#9 = 239,269
#10 = 232,290
#11 = 229,298
#12 = 229,309
#13 = 229,327
#14 = 229,334
#15 = 229,346
#16 = 232,367
#17 = 241,387
#18 = 243,401
#19 = 249,410
#20 = 252,421


so:

#+zahl stellt das keyword dar.
hinter dem = stehen eigentlich 2 zahlen, die 1 gibt die X position, und die 2 die Y position von einem objekt an (zb bild etc)

mein problem, wie lese ich das am besten, am einfachsten, und am schnellsten aus?

geht das nur, in dem ich bis zum komma auslese, und dann vom komma bis zum ende?
gibts auch ncoh was besseres?


thx
-.-"
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

StringField() hilft ;)
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

jop, habs auch gerade gesehen.
tro^tzdem danke :wink:

habe aber in der zeit selbst eine lösung gefunden, die mein problem behebt.
habe jetzt folgender pref inhalt

Code: Alles auswählen

X1 = 569
Y1 = 396
X2 = 573
Y2 = 390
X3 = 579
Y3 = 367
X4 = 560
Y4 = 328
X5 = 508
Y5 = 263
X6 = 505
Y6 = 256
X7 = 502
Y7 = 247
X8 = 502
Y8 = 241
X9 = 502
Y9 = 230
X10 = 508
Y10 = 228

so kann ichs ganz easy auslesen, leider wird dadurch die datei ein wenig grösser? oder?

naja, ich machs mal so.
nochmals danke an andyx

*kleine notiz für mich*

*endlichmalfilebefehleanschau :wink: *
-.-"
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Green Snake hat geschrieben:*endlichmalfilebefehleanschau :wink: *
String Befehle!! Schau dir die an, dann weißt du wie das geht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Du kannst doch ReadPreferenceString stringfielden... :?
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

jop, kann ich, geht auch, aber ich nehme es trotzdem in "meiner" variante.
der übersicht zu liebe :lol:
*wobei es anders auch nicht viel schlechter zu übersehen ist :lol: *
-.-"
Benutzeravatar
AndyX
Beiträge: 1272
Registriert: 17.12.2004 20:10
Wohnort: Niederösterreich
Kontaktdaten:

Beitrag von AndyX »

Das mit X1 = Y1= usw. ist doch umständlich nimm lieber meine Lösung :allright: :mrgreen:
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

ich würds variabler gestalten und fast schon garnichtmehr als preference einlesen sondern "normal" und dann ner Liste zuweisen

Code: Alles auswählen

NewList koordinaten.IDXPoint()
Debug "Datei öffnen und lesen"

OpenFile(0,"D:\test.ini")
While Eof(0)=0
  tmp$=ReadString()
  ; Debug tmp$
  If tmp$="[irgendwas]" ;Das muss man halt wissen
    lesen=1
    ;Beep(440,500)
  EndIf
  If tmp$="[irgendwasanderes]" ;Das auch
    lesen=0
    ;Beep(220,500)
  EndIf
  If lesen=1 And Left(tmp$,1)<>"["
    tmp$=RemoveString(tmp$," ")
    ;Debug tmp$
    
    tmp1$=StringField(tmp$,1,"=")
    tmp2$=StringField(tmp$,2,"=")
    tmp3$=StringField(tmp2$,1,",")
    tmp4$=StringField(tmp2$,2,",")
    ;Debug "Name :"+ tmp1$
    ;Debug "Wert1 :"+tmp3$
    ;Debug "Wert2 :"+tmp4$
    AddElement(koordinaten())
    koordinaten()\idx=tmp1$
    koordinaten()\x=Val(tmp3$)
    koordinaten()\y=Val(tmp4$)
  EndIf
Wend
Debug "lesen beendet"
;Auswertung
ResetList (koordinaten())
While NextElement(koordinaten())
  Debug "FÜR "+koordinaten()\idx+" sind die Koordinaten "+Str(koordinaten()\x)+" : "+Str(koordinaten()\y)
Wend
Du bist dann frei in der Anzahl der einzugebenden Punkte
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

ok, danke dir bobobo

werde deine (intressante) lösung mal genauer anschauen :wink:
-.-"
Antworten