Avatar billede tjgrindsted Nybegynder
09. oktober 2007 - 14:40 Der er 8 kommentarer og
1 løsning

Hvordan kan man udskrive et linje nr. fra en txt fil i VB.NET

Hej

Hvis man har en fil der hedder info.txt

hvordan kan jeg så få linje 1 eller 3 udskrevet på min default.aspx side !?

Vil det være bedre at bruge en XML fil og kan denne nemt rettes til i tekst med HTML tags via notepad !? og hvordan henter jeg så teksten ind !?
Avatar billede kalp Novice
09. oktober 2007 - 15:52 #1
hvis det er en text fil med relativ fast data så kan du cache den så den ikke skal hentes fra harddisken hver gang.

Hvis du skal have den i XML så er det pludselig ikke linjer det drejer sig om, men Noder så du skal nok gøre det tydeligt hvilken tekst form der er tale om.

Hvis det blot er almindelig text så kan du lave

string[] lines = File.ReadAllLines("stitiltxtfil");
int breakAt = 2;
int counter = 0;
foreach(string line in lines)
{
  if(counter == breakAt)
  {
  Response.Write("");
  break;
  }
counter++;
}

Det udskriver f.eks 3 linje - hvis den findes.
Avatar billede kalp Novice
09. oktober 2007 - 15:52 #2
Response.Write("");
skal selvfølgelig være
Response.Write(line);
Avatar billede arne_v Ekspert
10. oktober 2007 - 03:10 #3
Jeg tænker:

public String FindLine(int lno, string fnm)
{
    string res;
    using(StreamReader sr = new StreamReader(fnm))
    {
        for(int i = 0; i < lno - 1; i++)
        {
            sr.ReadLine();
        }
        res = sr.ReadLine();
    }
    return res;
}

og så i din Page_Load:

dinlabel.Text = FindLine(3, "enellerandenfil");
Avatar billede tjgrindsted Nybegynder
10. oktober 2007 - 09:51 #4
jeg kigger lige på det iaften. så vender jeg tilbage.
Avatar billede tjgrindsted Nybegynder
15. oktober 2007 - 18:53 #5
Hej Arne og Kalp

Jeg har kigget på det og brugt en CSharp til VB.NET konverter men kan ikke få det til at virke vil i hjælpe !?

Sted hvor jeg vil have udskrevet Data fra min TXT fil på default.aspx.vb:
Try
            ObjConn2.Open()
            ObjReader2 = ObjCmd2.ExecuteReader(CommandBehavior.CloseConnection)

            If ObjReader2.HasRows() Then
                RepeaterShowSalesDogs.DataSource = ObjReader2
                RepeaterShowSalesDogs.DataBind()
            Else
                NoRows2.Text = "Vi forventer hvalpekuld med Emma ca. den 25. Oktober, Kontakt os gerne omkring hvalpene, samt salg."
            End If
        Catch ex As Exception

Det er så her at jeg vil have NoRows2.Text = den tekst jeg udtrækker fra min fil. så man ikke skal ind i default.aspx.vb og ændre teksten men kan gøre det i salg.txt filen.

adresse til min txt fil er
d:\web\localuser\mitdomæne.dk\database\salg.txt

hvordan skal jeg få det til at virke !?
Avatar billede arne_v Ekspert
16. oktober 2007 - 02:28 #6
NoRows2.Text = FindLine(3, "d:\web\localuser\mitdomæne.dk\database\salg.txt")

hvor FindlIne så ser ud som:

Public Function FindLine(ByVal lno As Integer, ByVal fnm As String) As String
    Dim res As String
    Dim sr As StreamReader = New StreamReader(fnm)
    For i As Integer = 0 To lno - 2
        sr.ReadLine()
    Next
    res = sr.ReadLine()
    sr.Close
    Return res
End Function
Avatar billede tjgrindsted Nybegynder
18. oktober 2007 - 21:28 #7
Arne vil du venligst lægge et svar det virker som der skal og rart at 3 kan ændres til et andet linje nr.

Spm. er så lige hurtigt hvor kan jeg læse om dette hvis nu jeg vil lære at oprette en linje og rette en linje via et tekst felt lidt som med recorder i en database !?
Avatar billede arne_v Ekspert
18. oktober 2007 - 21:52 #8
svar

Man kan ikke rette en linie i en tekst fil - man er noedt til at genskrive hele
filen.

StreamReader har en bror ved navn StreamWriter der kan bruges.
Avatar billede tjgrindsted Nybegynder
19. oktober 2007 - 15:30 #9
jeg siger mange 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