CSharp: Gem indlæst fil

Tags:    c#

<< < 12 > >>
Kære udviklere,

Jeg skrev tidligere omkring at jeg havde problemer med at indlæse en fil i en text editor jeg har lavet - det virkede jo alligevel. Men jeg ville gerne gøre sådan at den indlæste fil (hvor man har tekst/kode i editoren) kan gemmes med det nye data man har skrevet.

1) Load File
2) Skriv i filen
3) Gem fil

Min kode indtil videre:

Fold kodeboks ind/udCSharp kode 


Jeg har allerede knappen "Save File", men den reagerer ikke uden en funktion. Er der nogen der kan forklare mig lidt om det, evt. en tutorial eller bare lidt kode. Er nemlig ny i det her :).



13 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 16 karma
Sorter efter stemmer Sorter efter dato
Hej Daniele,

Det er lidt svært at gennemskue hvad det er du har problemer med, men du skal naturligvis have en event handler for din Save button, ligesom du har for din Load button. I Visual Studio/Express kan du dobbeltklikke på knappen for at oprette en event handler for default eventen, som i det her tilfælde er Click. Her skal du så instantiere en SaveFileDialog og vise den, og derefter gemme til det valgte filnavn. Meget ala det du gør for Load, kan man sige :)

Den letteste måde at læse og skrive til en fil er imo de statiske metoder WriteAllText() og ReadAllText() på File klassen. Fx kan du sige noget ala

File.WriteAllText(path, fileContents);

for at gemme det der ligger i strengen "fileContents" til stien "path". Her skal fileContents så være den tekst du har i din editor og path skal være den sti som brugeren har valgt i din SaveFileDialog, altså Filename propertien.

Mvh.

Kasper (TSW)



Indlæg senest redigeret d. 08.03.2012 19:59 af Bruger #1
Jeg forstår det ikke 100%, sorry.



Fold kodeboks ind/udCSharp kode 






Daniele,
Jeg ved ikke, hvilket problem du har med Kaspers indput. SaveFileDialog er så langt hen ad vejen som OpenFileDialog du kan komme, at du bare skal kigge på din egen kode for at finde ud af det.
Hvis det er nemmere for dig at skrive en almindelig funktion der kalder en SaveFileDialog .. så gør det og kald funktionen i click-eventen. Du skal hverken bruge sender eller eventargs.



Indlæg senest redigeret d. 08.03.2012 20:26 af Bruger #17086
Hej Kasper,

Jeg går på uddannelse hvor jeg lærer om ASP.NET og C#, så ved lidt om det. Kendte godt tricket med at dobbeltklikke, men ved ikke hvad jeg skal skrive indeni - that's my problem :).



Okay, det var lidt svært at tyde ud fra din oprindelige post, for hvis du kan loade kan du vel også save? Det er som sagt ca. samme process. Jeg har opdateret min post med lidt mere info :)

Mvh.

Kasper (TSW)



Kan du ikke prøve at uddybe den der SaveFileDialog? For når jeg har min "Gem" knap, og har lavet den som en slags onclick med en funktion, hvad skal man så bruge en SaveFileDialog til? :)



Jeg forstår det ikke 100%, sorry.

Skal jeg lave én eller to funktioner til det? Kan i ikke prøve at demonstrere det lidt, tror at jeg fatter det bedre sådan :).



Aha! Tror at jeg er ved at fatte det ;)

Fold kodeboks ind/udCSharp kode 


Skal bare lige finde ud af hvad "Dialogresult" så er ;)


----------------


EDIT!

Jeg er kommet så langt her:
Fold kodeboks ind/udCSharp kode 


Men jeg er ikke helt sikker på hvordan jeg definerer "path" og "fileContents" ved "File.WriteAllText(..."



Indlæg senest redigeret d. 08.03.2012 21:10 af Bruger #16025
Prøv at find noget andet så.
TextWriter tr = new TextWriter(txtFileContent);// check proper object or look-up in IO
Du må trøste dig med at det traditionelt er et drøjt emne at komme igennem og at du er nemmere stillet. Jeg orker ikke at slå det op. Det er meget parallelt til file-open
// filename og path er noget du genererer i dialogen .. hent dem dér



Indlæg senest redigeret d. 08.03.2012 21:30 af Bruger #17086
Det her virker:

Fold kodeboks ind/udCSharp kode 


Jeg skal selvfølgelig definere hvilken fil den skal skrives til - men det er blot en test lige nu :D - tak for hjælpen!



<< < 12 > >>
t