Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 3 - Práce s textovými soubory ve VB.NET

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Vetva
Člen
Avatar
Vetva:25.12.2013 13:52

Aký je rozdiel medzi :
Using sr As New StreamReader("sou­bor.txt")
a
Dim sr As StreamReader("sou­bor.txt")
okrem toho, že pri Dim je nutné volať:
sr.Close

 
Odpovědět
25.12.2013 13:52
Avatar
Odpovídá na Vetva
Michal Žůrek - misaz:25.12.2013 14:05

skoro žádný, každopádně Using se doporučuje protože i zabraňuje memory leakům, kdežto ta varianta s Dim paměť vyčistí až v okamžiku kdy voláš Close.

 
Odpovědět
25.12.2013 14:05
Avatar
Neaktivní uživatel:1.8.2014 17:27

Jak mám nastavit aby se přečetl POUZE 2. řádek ? za radu předem děkuji :)

Odpovědět
1.8.2014 17:27
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:1.8.2014 17:47

Jednou zavoláš metodu Readline jen tak a pak jí teprve uložíš. Možná to jde i lépe, ale to ti bohužel neporadím.

Odpovědět
1.8.2014 17:47
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michael Škrášek:1.8.2014 17:52
Imports System.IO

Module Module1

    Sub Main()
        Using sr As StreamReader = New StreamReader("soubor.txt")
            For i = 1 To 10
                Dim line = sr.ReadLine()
                If i = 2 Then
                    Dim potrebny_radek = line
                End If
            Next
        End Using

    End Sub

End Module
Odpovědět
1.8.2014 17:52
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Odpovídá na Neaktivní uživatel
Michael Škrášek:1.8.2014 18:00

Nebo jak říkal Jiří Gracík (FunebrakCZ)

Imports System.IO

 Module Module1

     Sub Main()
         Using sr As StreamReader = New StreamReader("soubor.txt")
             sr.ReadLine()
             Dim line = sr.ReadLine()
         End Using

     End Sub

 End Module
Odpovědět
1.8.2014 18:00
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Michael Škrášek:1.8.2014 19:00

Myslím že je 1. možnost lepší protože se dá využít dobře u funkce. Ve VB to neumím, ale v C# by to mohlo být nějak takto:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.IO;

namespace ConsoleApplication4
{
    class Program
    {
        static string radek;
        static void Main(string[] args)
        {
            potrebny_radek(10);
            Console.WriteLine(radek);
            Console.ReadKey();
        }

        static void potrebny_radek(int cislo_radku)
        {
            StreamReader sr = new StreamReader(@"soubor.txt");
            string line;
            int i = 0;
            while ((line = sr.ReadLine()) != null)
            {
                i++;
                if (i == cislo_radku)
                {
                    radek = line;
                }
            }
        }
    }
}

Zmínil jsem to proto, že jsem dostal i-- a obhajujuse :D

Odpovědět
1.8.2014 19:00
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
Odpovídá na Michael Škrášek
Neaktivní uživatel:1.8.2014 19:18

Našel jsem lepší variantu jak obě naše :)!

public string GetLine(int line){

  return File.ReadLines(FileName).Skip(line - 1).Take(1).First();
}

// line je číslo řádku, které chceme

Editováno 1.8.2014 19:21
Odpovědět
1.8.2014 19:18
Neaktivní uživatelský účet
Avatar
Vetva
Člen
Avatar
Vetva:4.3.2015 21:34

A ako vymazať len napr. 2 riadok ? Že by prepis celého súboru ?

Editováno 4.3.2015 21:35
 
Odpovědět
4.3.2015 21:34
Avatar
Odpovídá na Michael Škrášek
Angelidis Aris:5.11.2018 12:02

Lepe je pouzit tento spusob

Try
FileOpen(1, "C:\soubor.txt", OpenMode.Input)
Dim i As Integer = 0
Dim s As String = ""
While Not EOF(1)
i += 1
s = LineInput(1)
If i = 2 Then
MsgBox(s)
Exit While
End If
End While
Catch ex As Exception
MsgBox(ex.ToString)
End Try
FileClose(1)

  1. Nevis kolik radku ma dany archiv
  2. Exit s lupy urychly program
 
Odpovědět
5.11.2018 12:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.