Diskuze: Visual Basic NET zmazanie poledneho riadkyu v textovom súbore
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Když máš už nějaký soubor vytvořený tak pomocí stream readeru
přečteš soubor, odstranis poslední řádek a znovu zapíšeš pomocí stream
writeru.
A když teprve ten soubor vytváříš tak tam prostě zápis toho posledního
řádku vynechaš.
Ještě by se dalo udělat, že by si četl soubor od konce a smazal první řádek, ale ten první způsob je mnohem lehčí.
Ahoj, veľmy ti ďakujem za odpoveď. skušal som to podla nej vyriešiť, no môj pokus riadky nezmazáva, ale pridáva, mohol by si mi napýsať ako mám upraviť nasledujuci kod? mislel som že keď odčitam od end of stream 1, tak to posledný riadok zmaže, ale ono to ešte riadky pridava. prosím ako mám upravit tento kód?
Private Sub deleteStepBtn_Click(sender As Object, e As RoutedEventArgs) Handles deleteStepBtn.Click
Using sr As New StreamReader(filename)
While Not sr.EndOfStream - 1
load = load + sr.ReadLine() + ControlChars.NewLine
End While
load = ""
End Using
Using sw As New StreamWriter(filename, True)
sw.WriteLine(load)
End Using
End Sub
End Class
skušal som tiež odstraniť: load = "" takto:
Private Sub deleteStepBtn_Click(sender As Object, e As RoutedEventArgs) Handles deleteStepBtn.Click
Using sr As New StreamReader(filename)
While Not sr.EndOfStream - 1
load = load + sr.ReadLine() + ControlChars.NewLine
End While
End Using
Using sw As New StreamWriter(filename)
sw.WriteLine(load)
End Using
End SubPrivate Sub deleteStepBtn_Click(sender As Object, e As RoutedEventArgs) Handles deleteStepBtn.Click
Using sr As New StreamReader(filename)
While Not sr.EndOfStream - 1
load = load + sr.ReadLine() + ControlChars.NewLine
End While
End Using
Using sw As New StreamWriter(filename)
sw.WriteLine(load)
End Using
End Sub
ale neuspešne
Když bych se držel toho tvého tak by to mohlo vypadat nějak takhle:
Private Sub deleteStepBtn_Click(sender As Object, e As RoutedEventArgs) Handles deleteStepBtn.Click
Using sr As New StreamReader(filename)
While Not sr.EndOfStream
load = load + sr.ReadLine() + ControlChars.NewLine
End While
End Using
load = load.Remove(load.LastIndexOf(ControlChars.NewLine))
If (load.Contains(ControlChars.NewLine)) Then
load = load.Remove(load.LastIndexOf(ControlChars.NewLine))
End If
Using sw As New StreamWriter(filename)
sw.Write(load)
End Using
End Sub
End Class
Nebo třeba pomocí listu by to vypadalo podobně, těch možností je
spousta.
Třeba když jde pouze o nový řádek tak stačí buď tam nechat
load = load.Remove(load.LastIndexOf(ControlChars.NewLine))
nebo
Using sw As New StreamWriter("C:\Users\JsemJ\Desktop\as.txt", False)
sw.Write(load.TrimEnd(ControlChars.NewLine.ToCharArray()))
End Using
ahoj, prosím ťa kde robím chibu? tento kód funguje ale to len dovtedy kím sa nezmazáva posledný riadok v súbore. potom miesto toho aby riadok zmazal pridá k nemu jeho kopiu, teda ak mam na prvom riadku ahoj- výsledok je :ahojahoj ale to iba ak sa pri zmazavaní dostanem na začiatok súboru, za odpovede ďakujem
Using sr As New StreamReader(filename)
While Not sr.EndOfStream
load = load + sr.ReadLine() + ControlChars.NewLine
End While
End Using
load = load.Remove(load.LastIndexOf(ControlChars.NewLine))
If (load.Contains(ControlChars.NewLine)) Then
load = load.Remove(load.LastIndexOf(ControlChars.NewLine))
End If
Using sw As New StreamWriter(filename)
sw.WriteLine(load)
End Using
load = ""
Aj takto by to slo...
Sub removeLastLineFromFile(filename As String)
Dim text() As String = IO.File.ReadAllLines(filename)
If (text.Length) > 0 Then Array.Resize(Of String)(text, text.Length - 1)
IO.File.WriteAllLines(filename, text)
End Sub
Zobrazeno 8 zpráv z 8.