Avatar billede m_smiszek Nybegynder
28. august 2007 - 09:14 Der er 10 kommentarer og
1 løsning

StreamReader - læse specifik line der starter med et tag?

Hej Alle,

Jeg sidder og arbejder på et lille projekt hvor jeg har en masse .txt filer, med omtrent 40 linjer i hver, af de linjer er der en eller to der starter med et MESSAGE: -efterfuldt af beskeden.

Denne besked kunne jeg godt tænke mig at smide ind i en MSSQL2005.

Jeg har bøvlet lidt med StreamReader, er dog ikke helt sikker på det er det rigtige at bruge.

En hurtig:

læs c:\txtbiblotek\*.txt (Da der jo er ret mange forskellige txt filer)
find linjen MESSAGE:
insæt linjen i database

Jeg er Ret rusten i VB.net - SQL har jeg helt styr på, så jeg håber der er nogle der vil hjælpe.
Avatar billede nielle Nybegynder
28. august 2007 - 09:34 #1
StreamRaeder lyder som et udemærket bud:

        Using sr As IO.StreamReader = New IO.StreamReader("C:\\dinFil.txt")
            Dim line As String
            While (sr.Peek() <> -1)
                line = sr.ReadLine()
                If (line.StartsWith("MESSAGE")) Then
                    Console.WriteLine(line) ' Du vil selvfølgelig skrive til databasen istedet
                    Exit While
                End If
            End While
        End Using
Avatar billede m_smiszek Nybegynder
28. august 2007 - 09:44 #2
Jamen det virker jo Næsten lige som jeg vil have det.

ER der på nogen måde jeg kan få den til at læse teksten efter MESSAGE ? så den ikke får MESSAGE med.

og hvordan får jeg den til at tage alle tekst filerne i et dir?

Du må gerne sende mig et svar - jeg udlover 60 point igen for svar på de andre :-)

MANGE TAK FOR HJÆLPEN og den hurtige respons :-)
Avatar billede nielle Nybegynder
28. august 2007 - 09:50 #3
Du kan jo f.eks. Replace MESSAGE-delen væk:

line = line.Replace("MESSAGE: ", "")
Avatar billede nielle Nybegynder
28. august 2007 - 09:51 #4
Svar :^)
Avatar billede nielle Nybegynder
28. august 2007 - 09:55 #5
Alle txt-filerne i et dir:

        Dim di As System.IO.DirectoryInfo = New System.IO.DirectoryInfo("C:\\ditDir\\ditUnderDir")
        Dim fiArr As System.IO.FileInfo() = di.GetFiles("*.txt")

        For Each fi As System.IO.FileInfo In fiArr
            Console.WriteLine(fi.FullName)
        Next
Avatar billede m_smiszek Nybegynder
28. august 2007 - 10:11 #6
Jeg bøvler lidt med at få den der *.txt til at virke, kan ikke helt gennemskue at få den sneget ind i koden.... fik jeg sagt jeg var rusten ? :-)
Avatar billede nielle Nybegynder
28. august 2007 - 10:15 #7
Sådan:

        For Each fi As System.IO.FileInfo In fiArr

            Using sr As IO.StreamReader = New IO.StreamReader(fi.FullName)
                Dim line As String
                While (sr.Peek() <> -1)
                    line = sr.ReadLine()
                    If (line.StartsWith("MESSAGE")) Then
                        Console.WriteLine(line) ' Du vil selvfølgelig skrive til databasen istedet
                        Exit While
                    End If
                End While
            End Using

        Next
Avatar billede m_smiszek Nybegynder
28. august 2007 - 10:24 #8
Det er sku godt.... det virker kanon...

Jeg kan ikke acceptere dit svar = hver gang jeg trykker på svar, kan jeg igen trykke på svar..
Avatar billede nielle Nybegynder
28. august 2007 - 10:25 #9
Du skal markere mit svar nede i den lille boks i bunden, og så trykke på Accepter knappen.
Avatar billede m_smiszek Nybegynder
28. august 2007 - 10:40 #10
Sådan
Avatar billede nielle Nybegynder
28. august 2007 - 17:31 #11
Takker for point :^)
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
Kurser inden for grundlæggende programmering

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