|
Verfasser |
Nachricht |
Team Bolt
Profi
Beiträge: 297
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 93
|
Mit Lua Script die Variable einer Textdatei verändern
Hi Leute,
ich habe folgendes Problem: Ich möchte gerne eine Variable in einer Textdatei via Luascript verändern. Bsp. die Variable in der Textdatei lautet a = 0. Ich möchte jetzt die Variable z.B in a = 2 ändern.
Ich habe schon alles Versucht aber nichts hat geklappt.
Variablen in Textdateine schreiben habe ich bereits hinbekommen.
Konkret gesagt will ich eine einzelne Zeile in der Textdatei durch eine neue Zeile ersetzten.
Mein Lösungsansatz ist folgender:
function trans()
datei = io.open("test.txt","r")
datei:read(*a)
-- hier müsste irgendetwas mit datei:lines() oder so reinkommen
datei:write("a = 2")
end
trans()
Danke schonmal im Vorraus
SIGNATURENSOHN!
|
|
08.06.2010 19:19 |
|
|
|
pspbricker
Mod a.D.
Beiträge: 3.428
Gruppe: User
Registriert seit: May 2008
Status:
Offline
Danke erhalten: 1641
|
RE: Mit Lua Script die Variable einer Textdatei verändern
Du willst also in einer Lua Datei einen Wert schreiben und diesen verändern, damit er gespeichert ist, auch wenn man das Programm verlässt ? Und in später wieder einlesen kann. Also so ähnlich wie Highscores oder so ?
Meine PS3 Games : Warhawk , NFS: Pro Street, Motorstorm ,Midnight Club LA, LittleBigPlanet, GTA4, Uncharted 2, Overlord, Killzone2, PES10, Battlefield ´43, Socom: Confrontation,
Forum Regeln Beachten! KEIN ISO Talk! KEINE Beleidigungen! KEINE illegalen Links!
|
|
08.06.2010 19:32 |
|
|
|
Neutrosider
Developer
Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010
Status:
Offline
Danke erhalten: 2325
|
RE: Mit Lua Script die Variable einer Textdatei verändern
du hast die datei mit "r" im lese modus geoeffnet nimm stattdessen "wb+"
GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
|
|
08.06.2010 19:36 |
|
|
|
Team Bolt
Profi
Beiträge: 297
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 93
|
RE: Mit Lua Script die Variable einer Textdatei verändern
Ja so ähnlich wie highscores.
Es muss doch irgendeine Möglichkeit geben eine Zeile in einer Textdatei zu löschen und einen neuen Text an der exakt selben position wieder einzusetzten...
SIGNATURENSOHN!
|
|
08.06.2010 19:39 |
|
|
|
Neutrosider
Developer
Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010
Status:
Offline
Danke erhalten: 2325
|
RE: Mit Lua Script die Variable einer Textdatei verändern
du musst die datei komplett einlesen, und indie neue alles eingelesene bis zur bestimmten stelle wieder schreiben, dann gewuenschte aenderung reinschreiben und restliches eingelesenes schreiben. ist nicht sehr schwer, aber man sollte sich mit tabellen, schleifen und stringoperatoren auskennen, um das elegant zu loesen.
GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
|
|
08.06.2010 19:57 |
|
|
|
James_Cutter
TeamCheyTac
Beiträge: 1.084
Gruppe: User
Registriert seit: Jul 2009
Status:
Offline
Danke erhalten: 1055
|
RE: Mit Lua Script die Variable einer Textdatei verändern
also müsste das so aussehen, wenn ich mich nicht irre:
function trans()
dateitoread = io.open("test.txt","r")
dateitoread:read(*a)
dateitoread:close()
dateitowrite = io.open("test.txt","w")
dateitowrite:write("a = 2")
dateitowrite:close()
end
trans()
wenns falsch ist bitte korrigieren
mfg
Kein Support mehr per PM
|
|
09.06.2010 13:06 |
|
|
|
pspbricker
Mod a.D.
Beiträge: 3.428
Gruppe: User
Registriert seit: May 2008
Status:
Offline
Danke erhalten: 1641
|
RE: Mit Lua Script die Variable einer Textdatei verändern
Ihr macht es euch viel zu kompliziert, ihr vergesst immer das Lua eine Script Sprache ist:
function readScore()
dofile("score.txt")
end
function writeScore()
d = io.open("score.txt","w")
d:write("a = "..a.."\n")
d:write("b = "..b.."\n")
d:write("c = "..c.."\n")
d:close()
end
Bevor man writeScore() ausführt müssen a,b,c schon deklariert sein, sonst gibt es einen Erorr.
Bei der Variante wird alles überschriben man muss der Variabele vor einen anderen Wert zu weisen.
Ich weiß jetzt nicht ob das wirklich die Lösung für den Problem, wenn nicht versuch es mal exakter zu beschreiben.
Meine PS3 Games : Warhawk , NFS: Pro Street, Motorstorm ,Midnight Club LA, LittleBigPlanet, GTA4, Uncharted 2, Overlord, Killzone2, PES10, Battlefield ´43, Socom: Confrontation,
Forum Regeln Beachten! KEIN ISO Talk! KEINE Beleidigungen! KEINE illegalen Links!
Dieser Beitrag wurde zuletzt bearbeitet: 09.06.2010 13:38 von pspbricker.
|
|
09.06.2010 13:35 |
|
|
|
Team Bolt
Profi
Beiträge: 297
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 93
|
RE: Mit Lua Script die Variable einer Textdatei verändern
Ich brauch das für einen Zufallsgenerator den ich grade mache. Er wird zum Ausfragen von Schulklassen verwendet. Derzeit benutzt es mein IT/Deutsch Lehrer.
Es gibt bereits eine Klassenliste in der man Eintragen kann wer schon ausgefragt wurde. Wenn der Zufallsgenerator auf z.B die Zahl 3 kommt, SOLL der 3. Wert in der Klassenliste verändert werden und zwar von "nein" (wie noch nicht ausgefragt) nach "ja" wie schon ausgefragt. Das Auslesen funzt schon wunderbar nur eben diese Kleinigkeit, dass man die schon ausgefragten nicht manuell eintragen muss würde dem ganzen das Sahnehäubchen geben.
Die Textdatei sieht folgendermaßen aus:
Nr1 = "nein"
Nr2 = "nein"
Nr3 = "nein"
Nr4 = "nein"
Nr5 = "nein"
Nr6 = "nein"
(etc. bis Nr40)
Wenn der Zufallsgenerator in der Script.lua jetzt Nr3 ausgewählt hat, soll unmittelbar danach der Wert Nr3 = "nein" in den Wert Nr3 = "ja" geändert werden. Das Problem bei euren (trotzdem sehr nützlichen) Lösungsmöglichkeiten ist, das dabei alles überschrieben wird, bzw. der Wert NUR an den letzten Wert angehängt wird.
Vielleicht ist es jetzt klarer...
SIGNATURENSOHN!
|
|
09.06.2010 20:50 |
|
|
|
Neutrosider
Developer
Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010
Status:
Offline
Danke erhalten: 2325
|
RE: Mit Lua Script die Variable einer Textdatei verändern
wenns nicht drängt, kann ich dir das am freitag fertig machen.
GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
|
|
10.06.2010 06:51 |
|
|
|
James_Cutter
TeamCheyTac
Beiträge: 1.084
Gruppe: User
Registriert seit: Jul 2009
Status:
Offline
Danke erhalten: 1055
|
RE: Mit Lua Script die Variable einer Textdatei verändern
also ungefär so oder was:
function writeScore()
d = io.open("score.txt","w")
d:write("nr1 = "..nr1.."\n")
d:write("nr2 = "..nr2.."\n")
d:write("nr3 = "..nr3.."\n")
--etc bis nr. 40
d:close()
end
oder täusche ich micht da?
mfg
Kein Support mehr per PM
|
|
10.06.2010 12:43 |
|
|
|
Neutrosider
Developer
Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010
Status:
Offline
Danke erhalten: 2325
|
RE: Mit Lua Script die Variable einer Textdatei verändern
nee, mit schleife ist besser. ich habe schon eine getestete, funktionierende funktion fertig. die funktion von mir braucht NUR die zeilenangabe, den rest macht sie von selbst. ich poste es, sobald ich an den pc komme, bin mit psp on.
Edit: hier ist die Funktion:
function anpassen(klassennr)
file=io.open("klassen.txt","r")
line=file:read("*l")
i=1
txt={}
while line~=nil do
txt[i]=line
i=i+1
line=file:read("*l")
end
file:close()
file=io.open("klassen.txt","wb+")
i=1
while i<klassennr do
file:write(txt[i].."\n")
i=i+1
end
file:write("Nr"..i.." = \"ja\"\n")
while i<table.getn(txt) do i=i+1
file:write(txt[i].."\n")
end
end
einfach mit anpassen(*zeilennummer*) aufrufen
natürlich wird *zeilennummer* dementsprechend ersetzt, z.b anpassen(2).
In diesem Fall muss die textdatei klassen.txt heissen, einfach an den stellen file=io.open("klassen.txt","r") und file=io.open("klassen.txt","wb+") anpassen. wers genereller braucht, kann das hier versuchen (ungetestet):
function anpassen(dateiname,zeile,ersatz)
file=io.open(dateiname,"r")
line=file:read("*l")
i=1
txt={}
while line~=nil do
txt[i]=line
i=i+1
line=file:read("*l")
end
file:close()
file=io.open(dateiname,"wb+")
i=1
while i<zeile do
file:write(txt[i].."\n")
i=i+1
end
file:write(ersatz)
while i<table.getn(txt) do i=i+1
file:write(txt[i].."\n")
end
end
diese funktion würde mit anpassen(dateiname,zeile,ersatz) aufgerufen
detainame = name der datei XD
zeile = zeile die ersetzt werden soll
ersatz = dass was in die zeile geschrieben werden soll.
GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
Dieser Beitrag wurde zuletzt bearbeitet: 10.06.2010 15:40 von Neutrosider.
|
|
10.06.2010 14:22 |
|
|
|
James_Cutter
TeamCheyTac
Beiträge: 1.084
Gruppe: User
Registriert seit: Jul 2009
Status:
Offline
Danke erhalten: 1055
|
RE: Mit Lua Script die Variable einer Textdatei verändern
elender cheater
muss ich mir merken.
mit dateien arbeiten is mir sowieso n dorn im auge
Kein Support mehr per PM
|
|
10.06.2010 16:41 |
|
|
|
Neutrosider
Developer
Beiträge: 2.442
Gruppe: Developer
Registriert seit: Feb 2010
Status:
Offline
Danke erhalten: 2325
|
RE: Mit Lua Script die Variable einer Textdatei verändern
lol, wo hab ich gecheatet?
GEGEN ACTA, SOPA UND PIPA!
was sind ACTA, SOPA und PIPA?
Infos dazu hier (video), hier (video) und hier (website)
|
|
10.06.2010 16:56 |
|
|
|
James_Cutter
TeamCheyTac
Beiträge: 1.084
Gruppe: User
Registriert seit: Jul 2009
Status:
Offline
Danke erhalten: 1055
|
RE: Mit Lua Script die Variable einer Textdatei verändern
ne ja kompliment an dich, so hätte ich das nie hingekriegt, wie man sieht
Kein Support mehr per PM
|
|
10.06.2010 17:12 |
|
|
|
Team Bolt
Profi
Beiträge: 297
Gruppe: User
Registriert seit: Dec 2009
Status:
Offline
Danke erhalten: 93
|
RE: Mit Lua Script die Variable einer Textdatei verändern
Tausend Dank, ich werds mal testen...
SIGNATURENSOHN!
|
|
12.06.2010 17:37 |
|
|
|