Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Läsa och modifiera textfil.

Postades av 2006-01-20 14:37:54 - Lars-Erik Eriksson, i forum vb.net, Tråden har 5 Kommentarer och lästs av 669 personer

Hej!

Jag har en textfil på några hundra rader som skall läsas in i ett affärssystem. Informationen finns i "kolumner" av fast längd. En av kolumnerna innehåller felaktig data och skall bytas ut mot annan information som jag räknar fram som en produkt av två tal, varav det ena finns i textfilen.

Frågan är nu vilka klasser och tillvägagångssätt som är bäst lämpade för dessa. Har tittat på TextWriter och reader-klasserna. Är det kanske bäst att läsa upp hela filen och sedan skriva ner allt med ändrade värden igen i en ny fil? Det känns som om att det är rätt pilligt att redigera en existerande textfil.


Svara

Sv: Läsa och modifiera textfil.

Postades av 2006-01-20 16:01:59 - Andreas Hillqvist

Här är ett exempel:

Function split(ByVal Text As String, ByVal ColumnLengths() As Long) As String()
        Dim Start As Long
        Dim Index As Long
        Dim ColumnLength As Long
        Dim Result(ColumnLengths.GetLength(0) - 1) As String

        For Each ColumnLength In ColumnLengths
            Result(Index) = Text.Substring(Start, ColumnLength)
            Index += 1
            Start += ColumnLength
        Next

        Return Result
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim read As New System.IO.StreamReader("input.txt")
        Dim write As New System.IO.StreamWriter("output.txt", False)
        Dim Line As String
        Dim Columns() As String
        Dim ColumnLengths() As Long = {20, 7, 7, 7}

        Dim Price As Integer
        Dim Count As Integer
        Dim Amount As Integer

        Line = read.ReadLine()
        Do Until Line Is Nothing
            Columns = split(Line, ColumnLengths)

            Price = Integer.Parse(Columns(1))
            Count = Integer.Parse(Columns(2))
            Amount = Price * Count

            Columns(3) = RSet(Amount, ColumnLengths(3))

            Line = String.Join("", Columns)
            write.WriteLine(Line)

            Line = read.ReadLine()
        Loop
        write.Flush()
    End Sub

Koden klarar inte överflöde. Att du försöker lagra ett värde som är större än columnens bredd.


Svara

Sv:Läsa och modifiera textfil.

Postades av 2006-02-01 17:29:39 - Lars-Erik Eriksson

Tack! Det var ett bra exempel!


Svara

Sv: Läsa och modifiera textfil.

Postades av 2006-02-05 12:56:04 - Lars-Erik Eriksson

Hallå igen. Jag stötte på ett nytt problem.
Om ett fel uppstår i läsningen av filen, vill jag avbryta skrivningen och ta bort den skrivna filen. Problemet är dock att filen är låst av min egen process och därför inte kan tas bort.
Jag bifogar koden nedan. OBS! Koden nedan är förenklad för att det skall vara lättare att förstå mitt problem. Den kan kanske därför te sig något ologisk.

Private Sub FileReaderWriter2()

Try
Dim oReader As System.IO.StreamReader
Dim oWriter As System.IO.StreamWriter
Dim sLine As String
Dim blnError As Boolean

oReader = New System.IO.StreamReader("C:\start.txt")
oWriter = New System.IO.StreamWriter("C:\test.txt")

sLine = oReader.ReadLine()

Do Until sLine = ""
If sLine.Length > 100 Then
blnError = True
Exit Do
End If

oWriter.WriteLine(sLine)

sLine = oReader.ReadLine()
Loop

oWriter.Flush()
oWriter.Close()
oWriter.Dispose()

oReader.Close()

If blnError = True Then
System.IO.File.Delete("C:\test.txt") 'HÄR UPPSTÅR FELET!
End If

Catch ex As Exception
Throw ex
End Try

End Sub


Svara

Sv:Läsa och modifiera textfil.

Postades av 2006-02-08 22:45:16 - Oskar Johansson

Testa med .Dispose på readern också


Svara

Sv: Läsa och modifiera textfil.

Postades av 2006-02-11 00:03:59 - Lars-Erik Eriksson

Ett utvecklarfel gjorde att .Close och Dispose aldrig kördes.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
387
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies