Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 15:19 Der er 19 kommentarer og
1 løsning

Hele fil til streng ?

Hej eksperter....

Jeg skal læse hele filen kunder.dat, som er let nok:

StreamReader sr = new StreamReader("kunder.dat");
string tmp;
while ((tmp = sr.ReadLine()) != null)
{
Console.WriteLine(tmp);
}

Men det er ikke helt det jeg skal...
Det er hele filens indhold der skal ligges i stregnen tmp ?
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 15:21 #1
jeg skal senere ha' lavet en søg kunder og slet kunde og rediger kunder...så jeg ved ikke om det kan betale sig at lægge det i et array ?
Avatar billede arne_v Ekspert
28. oktober 2005 - 15:22 #2
2 muligheder:

brug en StringBuilder og Append hve rlinie

brug ReadToEnd fremfor ReadLine
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 15:23 #3
ok jeg prøver ...

og så er der det med et array ?
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 15:24 #4
det skal siges at jeg skille kunderne ad med linjen "---" !
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 15:34 #5
ReadToEnd virker...men jeg synes måske at det er smartere at lave det i et array
altså:
jeg har filen kunder.dat med nogle kunder:
fx
visualdeveloper
ekspertengade 7
expby
45769548
---
arne_v
eksperten gade 1
expby
45731564


nu skal jeg ha' læst hver kunde til hvert "felt" eller hvad man nu kalder det!
Avatar billede arne_v Ekspert
28. oktober 2005 - 15:36 #6
jeg ville nok læse ind i en ArrayList (eller en type safe collection) med objekter af
en Person klasse
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 15:43 #7
ok jeg har ikke særlig meget styr på det med arrays...så vil du ikke være sød at om sætte det til C# kode :P
Avatar billede arne_v Ekspert
28. oktober 2005 - 15:51 #8
lav en Person klasse med de 4 attributter

ArrayList lst = new ArrayList();
StreamReader sr = new StreamReader("kunder.dat");
while (sr.Peek() >= 0)
{
    String navn = sr.ReadLine();
    String gade = sr.ReadLine();
    String by = sr.ReadLine();
    String tlf = sr.ReadLine();
    lst.Add(new Person(navn, adresse, by, tlf));
}
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 16:03 #9
tak for det jeg prøver det lige af...læg et svar i mens ;)
Avatar billede arne_v Ekspert
28. oktober 2005 - 16:05 #10
svar
Avatar billede arne_v Ekspert
28. oktober 2005 - 16:05 #11
og husk at bruge private fields og public properties i Person klassen
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 16:06 #12
hov lav en Person klasse med de 4 attributter, kan jeg ikke helt finde ud af:?

public class Person
{
string navn;
string adresse;
string by;
int telefon;
}

???
Avatar billede arne_v Ekspert
28. oktober 2005 - 16:08 #13
public class Person
{
    private string navn;
    private string adresse;
    private string by;
    private string telefon;
    public string Navn
    {
        get
        {
            return navn;
        }
        set
        {
            navn = value;
        }
    }
    // 3 properties mere (for de 3 andr fields)

    // constructor uden argumenter

    // constructor med 4 argumenter

    // ToString metode
}
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 16:17 #14
ok jeg får en masse fejl når jeg indsætter det:
se:
http://faarup.1go.dk/csharp/
Avatar billede arne_v Ekspert
28. oktober 2005 - 16:19 #15
den brokker sg bare over at navn og by er brugt som navne længere oppe ...

find nogle andre navne
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 16:20 #16
Avatar billede arne_v Ekspert
28. oktober 2005 - 16:23 #17
ret nu de fejl først

udover de fejl så brokker den sig over en manglende constructor med 4 argumenter
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 17:03 #18
jamen jeg ve ikke helt hvordan man laver sådanen ?
Avatar billede arne_v Ekspert
28. oktober 2005 - 17:06 #19
// constructor uden argument
public Person() : this("","","","")
{
}

// constructor med 4 argumenter
public Person(string nav,string gade,string by,string tlf)
{
    this.navn = navn;
    this.gade = gade;
    this.by = by;
    this.tlf = tlf;
}
Avatar billede visualdeveloper Nybegynder
28. oktober 2005 - 17:39 #20
tak ;)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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