Avatar billede thorkil1 Nybegynder
18. februar 2003 - 11:22 Der er 14 kommentarer og
2 løsninger

editable tekst

Hvordan er nemmest at lave tekstfelter, slutbrugeren kan skrive tekst. Brugeren skal senere have adgang til at læse teksten igen.
Avatar billede jmc Nybegynder
18. februar 2003 - 11:26 #1
Vælge et textfield og gå i properties og vælge editable for dette textfield. Benytte FILEIO eller DirectOS, til at gemme teksten.
Avatar billede thorkil1 Nybegynder
18. februar 2003 - 12:08 #2
kan du forklare lidt nærmere om brugen af fileio?
Avatar billede mortenmj Nybegynder
22. februar 2003 - 17:18 #3
FileIO skal du bruge hvis du vil redigere text-filer.
Avatar billede thorkil1 Nybegynder
24. februar 2003 - 08:29 #4
men hvor finder jeg "fileio"? Jeg kan ikke finde noget om det i diretor - eller lingo??
Avatar billede blim Nybegynder
24. februar 2003 - 09:22 #5
Det du kan gøre er at lave et textfield, hvor den gemmer i en fil når man trykker på enter (indsæt denne kode i et behaviour til text feltet):

on keydown
-- Tjekker om brugeren trykker på enter
if the key = ENTER then gemifil
else pass
end keydown

on gemifil
scribe = new(xtra "FileIO")
-- åbner filen "Filnavn"
scribe.openfile(the moviepath & "filnavn", 0)

-- hvis filen ikke eksisterer så skab filen "filnavn"
if status(scribe) = -37 then
scribe.createfeil(the moviepath & "filnavn")
scribe.openfile(the moviepath & "filnavn", 0)
end if

-- skriv teksten i text-feltet "text" ind i filen
scribe.writestring(field "text")
-- afslutter brug af filen
scribe.closefile()
end

håber ik der er nogle fejl... :)

/Blim
Avatar billede blim Nybegynder
24. februar 2003 - 09:23 #6
Det skal dog siges at ENTER kun er keypad ENTER og ikke den i midten af tastaturet :(
Avatar billede blim Nybegynder
24. februar 2003 - 09:26 #7
For at læse filen igen...
Hvis du laver f.eks. en button så put dette script i dens behaviour

on mousedown
scribe = new(xtra "FileIO")
scribe.openfile(the moviepath & "filnavn", 0)
put scribe.readline() into field "text"
end

ps. øverst skrev jeg scribe.createfeil ... der skulle stå scribe.createfile
Avatar billede thorkil1 Nybegynder
24. februar 2003 - 13:50 #8
Jeg får følgende fejl :-( (øv)

"handler definition expected.
if? status(scribe) = - 37 then"

thorkil

on gemifil
  scribe = new (XTRA "FileIO")
  -- åbner filen "Filnavn"
  scribe.openfile (the moviepath & "Filnavn", 0)
end if

-- hvis filen ikke eksisterer så skab filen "filnavn"
if status(scribe) = - 37 then
scribe.createfile(the moviepath & "filnavn")
scribe.openfile(the moviepath & "filnavn", 0)
end if
Avatar billede blim Nybegynder
24. februar 2003 - 16:18 #9
Jeg har lige prøvet den første kode af jeg skrev til dig, og den virkede! Så kiggede jeg lidt på den du har sendt tilbage, se her:

on gemifil
  scribe = new (XTRA "FileIO")
  -- åbner filen "Filnavn"
  scribe.openfile (the moviepath & "Filnavn", 0)
end if <--- Hvad laver den der? :)

og endelig husk at der ikke må være mellemrum mellem - og 37 !
ikke : - 37
men  : -37

skriv bare hvis det ikke løste din fejl :)

/Blim
Avatar billede thorkil1 Nybegynder
26. februar 2003 - 12:33 #10
Den der "end if" - ups.....
Den fejl er væk - men ak
når jeg laver en projektor - kan jeg skrive tekst ind i feltet - men når jeg trykker "enter" viser den scrip-fejl...
teksten gemmes i filen "filnavn"?? - og den fil generes automatisk ?? den skal jeg ikke selv lave? vel?
Jeg laver et field med navnet "text"

what´s wrong?

thorkil
Avatar billede blim Nybegynder
27. februar 2003 - 00:04 #11
husk at implementere FileIO xtra'en i din projector... gør følgende i Director :

klik Modify -> Movies -> Xtras -> Add -> Fileio.x32 -> OK

:)
Avatar billede thorkil1 Nybegynder
05. marts 2003 - 10:50 #12
Det hjalp gevaldigt at tage fileio med i projectoren :-).
Det eneste problem jeg nu har er at få teksten puttet ind i en anden tekstfield. Det har jeg brug for for at man ikke kan redigere i teksten anden gang man ser den. Og får at der kan hentes forskellige tekster frem på samme sted.
Jeg bruger følgende skript til at putte indholdet af tekstfilen ned i feltet "text2". Problemet er, at det kun virker første gang jeg vil se teksten. Hvis jeg går tilbage og redigerer i tekstfeltet kommer det redigerede ikke med næste gang jeg vil putte i "text". Skal "text2" nulstilles - eller hvad ?

on mousedown
  scribe = new(xtra "FileIO")
  scribe.openfile(the moviepath & "filnavn.txt", 0)
  put scribe.readline() into field "text2"
  go 35
end
Avatar billede blim Nybegynder
05. marts 2003 - 15:33 #13
inden jeg siger noget... husk scribe.closefile() når du er færdig... jeg snakker af erfaring når jeg siger at det kan fucke hele dit script op hvis du ikke gør :D

anyways...
Du bliver nødt til enten at lave en knap som hedder "gem" ... eller at når brugeren trykker på en bestemt tast skal filen gemmes!

tast :
on keydown
if the key = "enter" then gem
else pass
end

knappens script :
on mousedown
scribe.openfile osv.
scribe.writestring(field "text2")
scribe.closefile()
end
Avatar billede thorkil1 Nybegynder
06. marts 2003 - 22:18 #14
Hej Blim

Vil du ikke gentage det sidste svar. Jeg nåede ikke at få det skrevet ud - og nu er det forsvundet. Danm it....
thorkil
Avatar billede falkh Nybegynder
28. december 2003 - 19:49 #15
Hvordan får man det til at læse flere linier?
fx.
    Hej
    Med
    Dig
Avatar billede jmc Nybegynder
28. december 2003 - 20:09 #16
linie1 = member("din_tekst").line[1]
eller
linie1 = sprite(spriteNum).member.line[1]
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester