Forum: hur anger man konvertering o in/utläsning av fil c#

Forum huvudsida -> Programmering -> hur anger man konvertering o in/utläsning av fil c#

Sidor: 1

Till botten

mrscrissy 19:28 - 14:e Juni 2009 | Post #1
Medlem
Inlägg: 20


Skicka PM
hur anger jag konvertering av en sak till ett annat? Converter?

vad är C# motsvarighet för ifsteram och ofstream?
jag vill att programmet ska läsa från en viss fil och sedan skriva ut,efter konvertering, till en annan fil.

FileStream fs = new FileStream("CELS.TXT", FileMode.Open, FileAccess.Read);

stämmer ovan?

vad är motsvarigheten för ofstream? eller har jag blandat ihop dem? ovan ska vara inläsningen.






FunkyChicken 21:11 - 14:e Juni 2009 | Post #2
Nyhetsredaktör
Inlägg: 800


Skicka PM
Att konvertera data från en typ till en annan kallas för "casting". C# är ett ganska förlåtande språk och ofta sker konverteringen helt automatiskt i bakgrunen till vad som behövs (datorn "vet" vad som behöver göras för att det ska fungera). Men ibland måste du som programmerare uttryckligen begära en konvertering och det finns flera sätt att göra det. Tex kan du göra som i C++:

int i = (int) "5";

Många object har också inbyggda funktioner för konvertering:

Exception e = new Exception;
Console.WriteLine(e.ToString());

Du kan läsa mer och se några exempel på MSDN:

http://msdn.microsoft.com/en-us/library/ms173105.aspx


Du använder FileStream till båte inläsning och utskrivning. Motsvarigheterna till ifstream och ofstream är klasserna StreamReader och StreamWriter. När du ändå är inne på MSDN kan du söka på dessa klasser för att se hur du använder dem. Prova också att söka på Basic File I/O och klicka dig runt för att se fler sätt att jobba med filer.




Nissebosselasse 21:28 - 14:e Juni 2009 | Post #3
Medlem
Inlägg: 490


Skicka PM
int i = (int) "5";

...fungerar inte (kan inte typomvandla strängar till heltal utan vidare), däremot kan du använda Parse(..):

int i = int.Parse("5");

Parse finns för de flesta (alla?) grundläggande typer, d.v.s. float, double, int, byte e.t.c.

-------------------------
http://pushingcows.se
Gula Nallen



FunkyChicken 22:30 - 14:e Juni 2009 | Post #4
Nyhetsredaktör
Inlägg: 800


Skicka PM
Hoppsan. Det var ju ett år sen sist... Ett annat sätt att göra det är dock

int i = Convert.ToInt32("5");

Convert-klassen kan konvertera mellan alla grundläggande datatyper.






mrscrissy 19:15 - 15:e Juni 2009 | Post #5
Medlem
Inlägg: 20


Skicka PM
    Citat av FunkyChicken:
Att konvertera data från en typ till en annan kallas för "casting". C# är ett ganska förlåtande språk och ofta sker konverteringen helt automatiskt i bakgrunen till vad som behövs (datorn "vet" vad som behöver göras för att det ska fungera). Men ibland måste du som programmerare uttryckligen begära en konvertering och det finns flera sätt att göra det. Tex kan du göra som i C++:

int i = (int) "5";

Många object har också inbyggda funktioner för konvertering:

Exception e = new Exception;
Console.WriteLine(e.ToString());




Du använder FileStream till båte inläsning och utskrivning. Motsvarigheterna till ifstream och ofstream är klasserna StreamReader och StreamWriter. När du ändå är inne på MSDN kan du söka på dessa klasser för att se hur du använder dem. Prova också att söka på Basic File I/O och klicka dig runt för att se fler sätt att jobba med filer.


så jag kan i princip ange vad som helst i int, som att konvertera data till annat data efter en viss matematisk formel?
Tycker MSDN mest är ett uppslagsverk snarare än pedagogiskt underlag, jag som är färsk har svårt att förstå....Smiley
jag vill att programmet ska läsa in data från en textfil och sedan skriva ut datat (efter den konverteringen jag nämnt) till en annan textfil, jag ska testa vad du tipsa om, har svårt att se hela biten bara...jag återkommer...

tack för hjälpen, igen!


Senast redigerad 19:18 - 15:e Juni 2009


FunkyChicken 23:43 - 15:e Juni 2009 | Post #6
Nyhetsredaktör
Inlägg: 800


Skicka PM
Fröken Crissy, du har nog inte riktigt tänkt igenom det där riktigt. En textfil är en textfil. Den innehåller text. Oavsett om du parsar den till siffror så blir det text igen när du skriver ut det....

Eller så är det kanske vi som helt missuppfattat vad det är du vill göra. Vad vi pratar om här är konvertering mellan olika datatyper tex int (heltal) och string (text). Dvs att omvandla siffran 5 (som man räknar med) till tecknet "5" (som man kan läsa på skärmen eller spara i en fil), eller heltalet 5 till motsvarande decimaltal 5.0, osv. Men när du nämner matematiska formler osv känns det inte riktigt som att det är vad du har i åtanke. Jag tänker mig att du kanske har en fil med tex olika temperaturer och vill omvandla från Celcius till Kelvin tex

int celcius = 21;
int kelvin = celcius + 273;

,,r det nåt sånt du vill göra?

Sen är jag inte säker på vad du menar med att "ange vadsomhelst i int". Int (integer) är datatypen man använder för att lagra hyfsat stora heltal. När vi skriver

int kakor;

Anger vi att vi vill använda oss av variabeln kakor, och att den variabeln är av typen int, dvs ett heltal. Detta kallas för att deklararera variabeln. Det första man gör med variabeln är sedan att ge den ett värde (annars är den ju ganska meningslös):

kakor = 40; //Jag har 40 st kakor!

Man kan om man vill göra detta samtidigt som man deklarerar variabeln:

int kakor = 40;

Detta kallas för att initiera variabeln (när den får sitt värde första gången). Det går bra att ange värdet med en matematisk formel om man vill:

int kakburkar = 2;
int kakor = kakburkar*20; //20 kakor i varje burk

int i = 100*(2+27)/2-4;

osv. Men det måste förstås (i det här fallet) vara ett heltal! Om du tex vill använda en int (för att kunna utföra en matematisk beräkning) men datat kommer från en textfil och alltså är i form av text (datatypen string) så går det inte att använda rakt av. Då får du använda Convert eller Parse som vi visade ovan.

string data = ReadDataFromFile();
int celcius = Convert.ToInt32(data);
int kelvin = celcius + 273;
data = Convert.ToString(kelvin);
SaveDataToFile(data);


Hoppas det var ok förklarat. Säg till om det blir problem och visa gärna vad du jobbar med om du kör fast.






mrscrissy 09:18 - 19:e Juni 2009 | Post #7
Medlem
Inlägg: 20


Skicka PM
Ja du funkiga kycklingen, jag blev missförstådd, men det beror enbart på mina dåliga nybörjarfrågor....

Jag ska precis som du trodde konvertera celcisu till fahrenheit, men vill kunna göra det genom att programmet själv hämtar filen från en textfil och sedan skriver ut till en annan texfil, svaret alltså.

Jag har läst på mer nu och förstår nu vad Int är, ska försöka fixa programmet själv därför publicerar jag inga lösningar, får jag det ens här på detta forum?

jag är osäker på om mina metoder är riktiga, det blir ju inte som jag vill. jag återkommer när jag försökt själv mer, med specifikt vad jag fastnat i koden.




Sidor: 1

Forum huvudsida -> Programmering -> hur anger man konvertering o in/utläsning av fil c#
Atom feed

Du får inte posta i den här tråden | Till toppen