Variablen aus Dateien??
Übersicht

paDBetreff: Variablen aus Dateien?? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] option = OpenFile("playersetup.dat")
Repeat ReadLine(option) Until Eof(option) das ist der code, kann ich das nicht irgendwie so machen das ich jetzt in der datei schreibe: nickname=paD das die variable "nickname" in B3D nun auch den wert "paD" hat? wäre nett wenn mir jemand helfen kann ![]() paD |
||
http://www.spaceman-world.de |
![]() |
Smokie |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi,
Code: [AUSKLAPPEN] Variable=readline(datei$) Du musst dann die Zeilen halt einzeln auslesen. Gruß Smokie |
||
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer. Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet |
![]() |
nX^ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du liest alles aus aber speicherst das nicht in eine Variable.
Code: [AUSKLAPPEN] option = OpenFile("playersetup.dat")
name$=ReadLine(option) Closefile(option) Wenn du aber nickname=paD haben möchtest dann musst du den Teil auslesen und den String zerlegen in nickname und den parameter. EDIT: Verdammt da war einer schneller ![]() |
||
paD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und wie zerlege ich das?
also in der datei stehen ja noch mehr dinge drin, also zeile für zeile... nickname=paD clan=baDboyS wenn ich nun die datei öffne sollte die variable "nickname" halt den wert "paD" haben und "clan" sollte den wert "baDboyS" erhalten.. kann mir da jemand helfen? |
||
http://www.spaceman-world.de |
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn das Zeile für Zeile dasteht, ist eine Repeatschleife dafür ungeeignet.
Code: [AUSKLAPPEN] file=OpenFile("filename.txt")
nickname$=ReadLine$(file) clan$=ReadLine$(file) ... CloseFile file |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
benutze dazu den Befehl instr(String$, GesuchtesZeichen$(zb "="))
das liefert dir die position von "=" in dem string und von da an kannst du dann mit mid$(String$, Anfang%, Ende%) alles nach dem auslesen und in die Variable nickname etc. speichern |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
paD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und wenn ich das gemacht habe, wie kann ich dann der variable "nickname" auch den namen "nickname" geben..
also der name wird ja in der datei festgelegt und wird vorher nicht in blitz3d definiert.. so eig. sollte es dann ne variablen datei werden.. |
||
http://www.spaceman-world.de |
![]() |
Dante |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würds so lösen^^
Code: [AUSKLAPPEN] Global nickname$,clan$
option = OpenFile("playersetup.dat") While Not Eof(option) info$=ReadLine(option) test$(info$) Wend Print nickname$ Print clan$ CloseFile(option) WaitKey() End Function test$(txt$) txt$ = Trim(txt$) dummy$ = Left(txt$,Instr(txt$,"=")-1) Select dummy$ Case "nickname" nickname$ = Right(txt$,Len(txt$)-Len(dummy$)-1) Case "clan" clan$ = Right(txt$,Len(txt$)-Len(dummy$)-1) End Select End Function Edit: Hier noch ein Code von mir^^ eventuell besser zu gebrauchen. Code: [AUSKLAPPEN] Global datei$ = "playersetup.dat"
nickname$ = SelectInfo$("nickname") clan$ = SelectInfo$("clan") Print "Nickname: " + nickname$ Print "Clan: " + clan$ WaitKey() End Function SelectInfo$(txt$) Local s_info$,ok = 0 txt$ = Trim(txt$) option = OpenFile(datei$) While Not Eof(option) info$=ReadLine(option) If Instr(info$,txt$) s_info$ = info$ ok = 1 Exit EndIf Wend CloseFile(option) If ok = 1 dummy$ = Left(s_info$,Instr(s_info$,"=")-1) Return Right(s_info$,Len(s_info$)-Len(dummy$)-1) Else Return "" EndIf End Function |
||
- Zuletzt bearbeitet von Dante am Mo, März 13, 2006 19:03, insgesamt einmal bearbeitet
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
mach doch:
Code: [AUSKLAPPEN] x=readLine(datei$)
if left(x,9)="nickname=" then nickname=right(x,len(x)-9) und so weiter *edit* seine version ist besser |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi!
hatte letztens ein ähnliches Problem desswegen hab ich mir ne nette Funktion geschrieben! Hier ist sie! Code: [AUSKLAPPEN] ;----------------------------------------- ;SPLITTS A STRING LIKE YOU WANT ;----------------------------------------- Function stringSplitt$(strg$,char$,selection%) Local newstrg$="" Local count%=0 If Instr(strg$,char$)>0 Then For i%=1 To Len(strg$) If Mid(strg$,i%,1)=char$ Then count%=count%+1:i=i+1 If count%=selection% Then newstrg$=newstrg$+Mid(strg,i%,1) If count%>selection% Then Exit Next Else newstrg$=strg$ EndIf Return newstrg$ End Function Einfach den Strg das"splittzeichen" und dann null für links eins für rechts 2 für rechts von recht (wenn mehr als einmal das zeichen auftaucht) usw! Viel Spaß^^ |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
paD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
5k41 hat Folgendes geschrieben: Hi!
hatte letztens ein ähnliches Problem desswegen hab ich mir ne nette Funktion geschrieben! Hier ist sie! Code: [AUSKLAPPEN] ;----------------------------------------- ;SPLITTS A STRING LIKE YOU WANT ;----------------------------------------- Function stringSplitt$(strg$,char$,selection%) Local newstrg$="" Local count%=0 If Instr(strg$,char$)>0 Then For i%=1 To Len(strg$) If Mid(strg$,i%,1)=char$ Then count%=count%+1:i=i+1 If count%=selection% Then newstrg$=newstrg$+Mid(strg,i%,1) If count%>selection% Then Exit Next Else newstrg$=strg$ EndIf Return newstrg$ End Function Einfach den Strg das"splittzeichen" und dann null für links eins für rechts 2 für rechts von recht (wenn mehr als einmal das zeichen auftaucht) usw! Viel Spaß^^ den versteh ich nicht so ganz.. oder ihr versteht vielleicht mein problem nicht.. datei: nickname=paD clan=blabla lx=10 ly=457 lz=417 usw... die ganzen variablen brauch ich in bb.. also kann ich jetzt nicht alle variablen in bb vorher definieren.. das sind kanpp 100 - 200 variablen... und jetzt muss ich halt jede variable die in der datei gespeichert sind in BB bekommen.. |
||
http://www.spaceman-world.de |
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
achso...muss es denn jedesmal beim beim Starten die Variablen laden, oder reichts einmal beim Kompilieren der .exe? wenns ein mal beim Kompilieren reicht, dann benutz Include ansonsten wird das was du tun willst schwierig! | ||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
Florian |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Type TVar Field Name$ Field Wert$ End Type Global VAR.TVAR Load_VAR "VAR.TXT" Z=MilliSecs() For M=1 To 1000 Print Get_Var(100) Next Print MilliSecs()-Z WaitKey Function Load_VAR(Dateiname$) FileNr=ReadFile(Dateiname$) If FileNr=0 Then Return While Not(Eof(FileNr)) Zeile$=ReadLine$(FileNr) Pos=Instr(Zeile$,"=") If Pos>1 Then Varname$=Left$(Zeile$,Pos-1) Varwert$=Mid$(Zeile$,Pos+1) New_VAR Varname$,Varwert$ EndIf Wend CloseFile FileNr Return True End Function Function Save_VAR(Dateiname$) FileNr=WriteFile(Dateiname$) If FileNr=0 Then Return False For Var=Each TVar WriteLine FileNr,Var\Name$+"="+Var\Wert$ Next CloseFile FileNr Return True End Function Function New_VAR(Varname$,Varwert$) Var=New TVAR Var\Name$=Lower$(Varname$) Var\Wert$=Varwert$ End Function Function Delete_VAR(Varname$) Varname$=Lower$(Varname$) For Var=Each TVar If VAR\Name$=Varname$ Then Delete Var Return True EndIf Next Return False End Function Function Get_VAR$(Varname$) Varname$=Lower$(Varname$) For Var=Each TVar If VAR\Name$=Varname$ Then Return Var\Wert$ EndIf Next End Function Function Set_VAR(Varname$,Varwert$) Varname$=Lower$(Varname$) For Var=Each TVar If VAR\Name$=Varname$ Then Var\Wert$=Varwert$ Return True EndIf Next Return False End Function Function Lower$(S$) Slen=Len(S) If Slen>0 Then For P=1 To Slen ASCII=Asc(Mid$(S$,P,1)) If Ascii>64 And Ascii<92 Then Ascii=Ascii+32 ElseIf Ascii=220 Then ;ü Ascii=252 ElseIf Ascii=196 Then ;ä Ascii=228 ElseIf Ascii=214 Then ;ö Ascii=246 End If R$=R$+Chr$(ASCII) Next Return R$ End If End Function |
||
Das große BlitzBasic Community Tutorial
Stackmaschine 2.0 |
- Zuletzt bearbeitet von Florian am Mo, März 13, 2006 23:43, insgesamt einmal bearbeitet
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Ist das nicht viel langsamer als "echte" Variabeln ? mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es ist meiner Meinung nach ein schönes Beispiel dafür wie man ein kleines (durch Faulheit oder egal was sonst entstandenes) Problem zu einem fetten Kuchen aufblähen kann.
Ob mann nun in seiner VariablenDatei 200 Namen einhämmert oder das direkt im .bb tut, spielt doch keine Rolle. Und normalerweise sollte ein Projekt durchdacht genug sein um vorher die darin enthaltenen Variablen zu kennen. Florians (sehr schöne) Lösung ist ein interessanter Kunstgriff, aber im "normalen" Falle wird man das kaum benötigen, es sei denn man möchte selbst komplexe Inhalte parsen. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
paD |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
naja, mit faulheit hat das wohl weniger zu tun..vielleicht viel mehr als savedatei.. als ne mapdatei... oder sonst was..aber du wirst das schon wissen ![]() |
||
http://www.spaceman-world.de |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Alles Dinge für die ich nicht on-the-fly Variablen erstellen muss. Mit etwas Planung geht das so. Und wenn es Dir zu mühseelig ist jeden Identifier von Hand einzugeben schreib Dir ein kleines Programm welches die Werte abfragt und an eine Datei Deiner Wahl anhängt. Sollte in maximal einer halben Stunde zu Schaffen sein. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group