Permalänk

Filhantering Programmering

Tjena alla legender! Allt fint hoppas jag
Håller på med Programmering där jag nu ska jobba med filhantering, min uppgift är att skriva ett befintligt projekt till en fil, eller åtminstone en liten del av den koden. I förklaringen står det att om det inte redan finns en textfil så kommer det att skapas en(ingen aning var den hamnar), detta är första gången jag hör om filhantering(är 2 månader gammal inom programmeringen) så tänkte kolla lite om någon har lust att förklara begreppet för mig lite/ge mig tips på vad jag kan googla på då jag fan i mig inte hittar något på egen hand samt vad det är bra för?

Såhär är min start än så länge(i Main):

StreamWriter streamWriter = new StreamWriter("textfil.txt", true); streamWriter.WriteLine("Hejsan!"); streamWriter.WriteLine("Hmm, funkar det?"); streamWriter.Close();

Permalänk
Hedersmedlem
Skrivet av PapaDiouf:

I förklaringen står det att om det inte redan finns en textfil så kommer det att skapas en(ingen aning var den hamnar)

Filen hamnar i den sökväg du anväder. Om du som i din exempelkod bara anger ett filnamn så hamnar den i "current working directory" där programmet körs från. Vilken katalog det är beror på hur programmet startas.

Citat:

detta är första gången jag hör om filhantering(är 2 månader gammal inom programmeringen) så tänkte kolla lite om någon har lust att förklara begreppet för mig lite/ge mig tips på vad jag kan googla på då jag fan i mig inte hittar något på egen hand samt vad det är bra för?

Vad vill du ha förklarat? Filhantering är möjligheten för ditt program att ladda och spara filer. Det händer ju ändå rätt ofta att man vill kunna ta in data i sitt program eller skriva ut data i en fil...

Permalänk

@pv2b: Okej, mitt program är sparat i en mapp på skrivbordet, bör den ligga nånstans där i eller är jag ute och cyklar? Ska skriva över kod från programmet Joppes Djurfamilj som jag minns du var med o hjälpte kring, specifikt meny delen ska med, skickar jag med den koden rakt av i "streamWriter.WriteLine" eller fungerar det på något annat sätt när man skriver till filer? Ska bara försöka få lite förståelse för detta så tror jag att jag löser uppgiften bra

Permalänk
Medlem
Skrivet av PapaDiouf:

Ska skriva över kod från programmet Joppes Djurfamilj som jag minns du var med o hjälpte kring, specifikt meny delen ska med, skickar jag med den koden rakt av i "streamWriter.WriteLine" eller fungerar det på något annat sätt när man skriver till filer?

Det fungerar på samma sätt som med t.ex. Console.WriteLine, bara att texten hamnar i en fil på disk istället för att skrivas ut i konsollen.

Permalänk
Hedersmedlem
Skrivet av PapaDiouf:

@pv2b: Okej, mitt program är sparat i en mapp på skrivbordet, bör den ligga nånstans där i eller är jag ute och cyklar? Ska skriva över kod från programmet Joppes Djurfamilj som jag minns du var med o hjälpte kring, specifikt meny delen ska med, skickar jag med den koden rakt av i "streamWriter.WriteLine" eller fungerar det på något annat sätt när man skriver till filer? Ska bara försöka få lite förståelse för detta så tror jag att jag löser uppgiften bra

Som sagt, det beror på hur du startar programmet. Dubbelklickar du på filen i Explorer så är ditt Current Working Directory katalogen där filen ligger. Startar du från kommandoprompten så är Current Working Directory katalogen du står i. Startar du från Visual Studio (Debug-mode) så kan du ställa det genom att högerklicka på din applikation i Solution Explorer, välja Properties, och ställa working directory dår.

Men enklast är ju om du istället anger fulla sökvägen till filen än att krångla med det?

Sedan förstår jag inte vad du menar med "skriva över menydelen"... vill du alltså att menyn ska skrivas till en fil? Det låter ju jätteknasigt.

Definiera gärna vad det är du vill att ditt program ska göra lite mer exakt.

Permalänk
Medlem
Skrivet av PapaDiouf:

Tjena alla legender! Allt fint hoppas jag
Håller på med Programmering där jag nu ska jobba med filhantering, min uppgift är att skriva ett befintligt projekt till en fil, eller åtminstone en liten del av den koden. I förklaringen står det att om det inte redan finns en textfil så kommer det att skapas en(ingen aning var den hamnar), detta är första gången jag hör om filhantering(är 2 månader gammal inom programmeringen) så tänkte kolla lite om någon har lust att förklara begreppet för mig lite/ge mig tips på vad jag kan googla på då jag fan i mig inte hittar något på egen hand samt vad det är bra för?

Såhär är min start än så länge(i Main):

StreamWriter streamWriter = new StreamWriter("textfil.txt", true); streamWriter.WriteLine("Hejsan!"); streamWriter.WriteLine("Hmm, funkar det?"); streamWriter.Close();

Anger du ingen path så kommer filen att hamna i <projektfoldern>/bin/debug/<version>/textfil.txt.
exempelvis C:\Users\mittNamn\source\repos\MinApp\MinApp.UI\bin\Debug\netcoreapp3.1\textfil.txt
Det finns möjlighet att hämta andra platser via enums, eller genom att ange path direkt som en sträng.

Detta exempel kommer att placera filen på ditt skrivbord.

string docPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); StreamWriter streamWriter = new StreamWriter(Path.Combine(docPath, "textfil.txt"), true);

Att skriva direkt till C kräver oftast behörigheter, så antingen kan du via kod skapa någon folder först som du skriver filen till eller placera den i bin som det görs per automatik om path inte anges.

Här skapar du en folder i C: som heter MyData och placerar sedan filen test.txt i den foldern.

Directory.CreateDirectory(@C:\MyData); StreamWriter streamWriter = new StreamWriter(@C:\MyData\test.txt, true); // EDIT: // Efter @ ska det givetvis vara " " för att påvisa att det är en sträng. // Dessa försvann i Sweclockers formatering.

Sen kan du läsa på om Directory.Exists och File.Exists

Tänk på att då du anger hårdkodade paths så är det inte säkert att någon annan person som kör ditt program får samma resultat. Därför bör du utgå från Enviroment variabler för att placera dina filer.

Permalänk

@pv2b: Ja precis, jag skapade en meny för vad man kunde göra med djuren. Detta är uppgiftsbeskrivningen:

"Filhanteringen innebär att du ska kunna skriva ut lämplig information i en textfil vid ett givet tillfälle. Förslagsvis att det för Joppes hundar finns en meny-möjlighet att skriva ut information om exempelvis då alla hundar."

Hmm, när jag läser om det är jag inte lika övertygad om att det är hela koden som ska dit?

Permalänk

@zaibuf: Snyggt förklarat, tack för det!

Permalänk
Medlem
Skrivet av PapaDiouf:

@pv2b: Ja precis, jag skapade en meny för vad man kunde göra med djuren. Detta är uppgiftsbeskrivningen:

"Filhanteringen innebär att du ska kunna skriva ut lämplig information i en textfil vid ett givet tillfälle. Förslagsvis att det för Joppes hundar finns en meny-möjlighet att skriva ut information om exempelvis då alla hundar."

Hmm, när jag läser om det är jag inte lika övertygad om att det är hela koden som ska dit?

Låter som du ska kunna loopa ut alla dina hundar i programmet. Skriva deras information till en fil då man anger det menyvalet.

Permalänk

@zaibuf: Håller med! Har testat vad du skickat, och koden funkar ju som det ska, känner mig totalt usel nu men jag får fan inte till att hitta textfilen någonstans, är inne i Visual Studio, skriver koden men textfilen dyker inte upp, utöver koden, behöver jag göra något för att framkalla den? Är 100% att jag kollar på rätt ställen åtminstone.

Permalänk

@zaibuf: Glöm vad jag skrev, klockan är kanske lite för mycket för mig haha men jag hittade det xD
Återigen tack så mycket alla ni som hjälper!
När denna är klar börjar jag äntligen i Forms och ska göra mitt program, lär säkert behöva lite råd på vägen så återkommer väl snart haha..

Permalänk

Tjoho igen! När man sparar data via streamwriter nu, skriver man dit hela koden eller hur går man liksom till väga om man vill spara ett program som är färdigt?

Permalänk
Medlem
Skrivet av PapaDiouf:

Tjoho igen! När man sparar data via streamwriter nu, skriver man dit hela koden eller hur går man liksom till väga om man vill spara ett program som är färdigt?

Oftast skriver man väl det som är väsentligt. T.ex. att du skickar in din lista med djur, loopar den och skriver ner alla djurens information i filen.

Permalänk

@zaibuf: Okej förstår, som kod då liksom eller ska jag skriva det i text? Exempelvis: "I menyn finns fyra alternativ, väljer man 1 får man välja djur att leka med och texten "exempel" skrivs ut" osv, eller själva koden? Sen ser jag att det jag skrev första gången, mitt exempel "Hejsan" återkommer varje gång jag startar textfilen, går detta att rensa på något sätt?

Permalänk
Medlem
Skrivet av PapaDiouf:

Okej förstår, som kod då liksom eller ska jag skriva det i text? Exempelvis: "I menyn finns fyra alternativ, väljer man 1 får man välja djur att leka med och texten "exempel" skrivs ut" osv, eller själva koden?

Jag vet inte vad du menar med "som kod", men det är ju text du ska skriva ut. Varje djur har väl t.ex. namn, ålder, favoritmat, o.s.v., så om användaren väljer att skriva ut information om djuren till fil så är det bara att skriva ut den informationen.

Skrivet av PapaDiouf:

Sen ser jag att det jag skrev första gången, mitt exempel "Hejsan" återkommer varje gång jag startar textfilen, går detta att rensa på något sätt?

Konstruktorn för StreamWriter är StreamWriter(string path, bool append), där append bestämmer om du vill lägga till mer i filen eller skriva över den. Med andra ord, ändra true till false när du skapar din StreamWriter så kommer filen skrivas över varje gång istället.

Permalänk
Medlem
Skrivet av PapaDiouf:

@zaibuf: Okej förstår, som kod då liksom eller ska jag skriva det i text? Exempelvis: "I menyn finns fyra alternativ, väljer man 1 får man välja djur att leka med och texten "exempel" skrivs ut" osv, eller själva koden? Sen ser jag att det jag skrev första gången, mitt exempel "Hejsan" återkommer varje gång jag startar textfilen, går detta att rensa på något sätt?

Beror väl på hur det ska formateras, ska bara datan sparas ner kan man loopa det och ha någon form av break (tappat ordet) mellan properties.

using(var w = new StreamWriter("./minfil.txt") { foreach(var animal in animalList) { w.WriteLine($"{animal.Id};{animal.Name};{animal.Age}"); } }

Permalänk

@perost: Absolut, att det ska ut i text har jag förstått, menade mer om jag ska ta själva koden i sig och skriva in på textfilen, eller om man använder pseudokod liksom, eller liknande. Men gissar väl på att det är själva koden för att lista djuren som jag skriver ner?
Ah, är ju ganska logiskt att ändra till false då, det funkade utmärkt!

Permalänk

@PapaDiouf: Fick till det! Tack snälla.

Permalänk
Medlem
Skrivet av PapaDiouf:

@perost: Absolut, att det ska ut i text har jag förstått, menade mer om jag ska ta själva koden i sig och skriva in på textfilen, eller om man använder pseudokod liksom, eller liknande. Men gissar väl på att det är själva koden för att lista djuren som jag skriver ner?

Nej, du ska skriva ut information om djuren som är lagrade i minnet. Ett exempel skulle t.ex. kunna vara:

Namn: Misse Ras: Katt Ålder: 5 Namn: Zorro Ras: Hund Ålder: 4

Uppgiften verkar inte ange något särskilt format du måste följa enligt vad du skrivit, så du kan välja själv hur du vill presentera informationen.

Permalänk

@perost: Ja, satt uppe halva natten med massa felmeddelanden när jag försöker skriva in koden liksom, att vissa grejjer inte "exist in current blabla", för när jag ser sista uppgiften där vi ska använda oss utav Form i VS så får vi göra programmet som vi vill men att det hänger ihop med vår kod liksom, så jag skriver ut infon på det viset istället, idag blir jag klar med programmering 2 precis i tid tack vare er hjälp, så tack för ni har orkat ta er tid, uppskattas!

Kanske måste skapa ny tråd för detta, vet ej men tänkte kolla om det är någon som har något att säga om utbildningarna Mjukvaruutvecklare samt Systemutvecklare .NET. Har sökt dessa till hösten och om jag skulle komma in på båda så tänkte jag höra lite om det är samma typ av utbildning med olika namn eller är skillnaden markant?

Permalänk
Medlem
Skrivet av PapaDiouf:

@perost: Ja, satt uppe halva natten med massa felmeddelanden när jag försöker skriva in koden liksom, att vissa grejjer inte "exist in current blabla", för när jag ser sista uppgiften där vi ska använda oss utav Form i VS så får vi göra programmet som vi vill men att det hänger ihop med vår kod liksom, så jag skriver ut infon på det viset istället, idag blir jag klar med programmering 2 precis i tid tack vare er hjälp, så tack för ni har orkat ta er tid, uppskattas!

Kanske måste skapa ny tråd för detta, vet ej men tänkte kolla om det är någon som har något att säga om utbildningarna Mjukvaruutvecklare samt Systemutvecklare .NET. Har sökt dessa till hösten och om jag skulle komma in på båda så tänkte jag höra lite om det är samma typ av utbildning med olika namn eller är skillnaden markant?

Kan du länka kursinnehåll för respektive utbildning?

Permalänk

@zaibuf:
Här är infon som finns på sidan:

Mjukvaruutvecklare

UTBILDNINGENS INNEHÅLL I KORTHET
Utveckling med C#
Agil systemutveckling i team
Objektorienterad programmering
Databasutveckling och databasadministration
Avancerad .NET
Systemtestning backend
Utveckling av Windowsapplikationer
Utveckling av webbapplikationer
Front end utveckling för backendutvecklare
LIA 1 Grundläggande mjukvaruutveckling
LIA 2 Avancerad mjukvaruutveckling
Examensarbete
-----------------------------------------------
Systemutvecklare .NET

UTBILDNINGENS INNEHÅLL I KORTHET
Agil systemutveckling 30.
Användarbeteende och interaktion 20.
Avancerad systemutveckling med ASP, .NET och MVC 70.
Den digitala revolutionen 10.
Examensarbete 20.
LIA 1 Arbetsroll och projekt 20.
LIA 2 Grundläggande systemutveckling 70.
LIA 3 Avancerad systemutveckling 50.
Systemarkitektur och modulär design 30.
Systemkommunikation 30.
Webbutveckling 50.