Diskuze: Cesta k souboru v textovém souboru
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 42 zpráv z 42.
//= 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.
Je to v Microsoft Visual Studio 2013 jsem zapomněl dodat
private void Click(object o, EventArgs e)
{
Process.Start(File.ReadLines("cesta_k_tomu_souboru_kde_je_nazev_exečka").First());
}
nebo takhle
Process.Start(File.OpenText("cesta_k_tomu_souboru_kde_je_nazev_exečka").ReadLine());
Těch možností, jak načíst text ze souboru je hodně
Private Sub PictureBox5_Click(sender As Object, e As EventArgs) Handles
PictureBox5.Click
Process.Start(File.OpenText("C:\Users\Uživatel1\Desktop\Project\Mass
Effect Trilogi\Cesta.txt").ReadLine());
End Sub
mám to napsané dobře ? mě to totiž nefunguje , nevíš co s tím ?
Překonvertuj si to do VB, tohle je C#. Názvy tříd i metod jsou stejné, jen VB má jinou syntaxi.
jsem opravdu začátečník jak to mám překonvertovat ?
Ve skutečnosti tam asi stačí jen smazat ten středník
I tak to nefunguje
Private Sub PictureBox5_Click(sender As Object, e As EventArgs)
Process.Start(File.ReadLines("C:\Users\Uživatel1\Desktop\Project\Mass
Effect Trilogi\Cesta.txt").First())
End Sub
zkoušel jsem i toto a také nic sice žádný error ale taky se nic nestalo
soubor se neotevřel
Proč si místo řešení kravin raději nepřečteš začátečnické tutoriály? Takhle jen zatěžuješ ostatní.
Try
Using sr As StreamReader = New StreamReader("FileWithEXE.txt")
Dim line = Await sr.ReadToEndAsync()
Process.Start(line)
End Using
Catch
ResultBlock.Text = "Could not read the file"
End Try
A jdi si nastudovat nějaké tutoriály. Nikdo ti tady za tebe nebude programovat tvoje aplikace.
EDIT:// Vlož to do toho buttonu, a doplň cestu ve formátu
C:\Program Files (x86)....
místo FileWithEXE.txt
ale já je čet, ale když si myslíš že jsi tak chytrý tak my řekni jak
to že ani tvůj kód nefunguje
Možná proto, že na formuláři nemáš label s názvem ResultBlock a nemáš naimportovaný System.IO. Jestli jsi četl jen ty úplně základní tutoriáli, tak ti toto musí bejt jasný.
Ty co jsem četl byli psané do konzole takže netuším jak to dát do své NF App
Jak jsem říkal. Přečti si začátečnické tutoriály. Tohle vlož jako import na začátek tvého kódu
Imports System.IO
A jestli nevíš jak přejmenovat label na formuláři, tak je mi líto, ale to ti nepomůžu.
to už tam mám a furt to samé jako na tom screenu. a vložil jsem to správně úplně nahoru nad class
Nevim jak je to ve VB, ale v C# tam musíš ještě dát
using System.Diagnostics;
Ukázka konzolové aplikace ještě v C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
try
{
StreamReader sr = new StreamReader(@"soubor.txt");
Process process = new Process();
process.StartInfo.FileName = sr.ReadLine();
process.Start();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
Měl jsem tam chybu.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
try
{
StreamReader sr = new StreamReader(@"soubor.txt");
Process process = new Process();
process.StartInfo.FileName = sr.ReadLine();
process.Start();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadKey();
}
}
}
}
A ten @"soubor.txt" je jméno souboru ve kterém je ta cesta.
dík moc pokrok už to háže jen jeden error místo dvou díky
Error 1 'Await' can only be used when contained within a method or lambda expression marked with the 'Async' modifier.
Z toho nic nepoznám, Je to VB aplikace, nebo C#? A dej sem kód, kterej si napsal + obrázek s Errorm.
V Microsoft Visual Studio 2013
Imports System.Text
Imports System.IO
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private p As Point
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
p = New Point(e.X, e.Y + (Me.Size.Height - Me.ClientSize.Height))
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As
System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
If e.Button = MouseButtons.Left Then
Me.Location = New Point(Cursor.Position.X - p.X, Cursor.Position.Y - p.Y)
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
Using sr As StreamReader = New
StreamReader("C:\Users\Uživatel1\Desktop\Project\MET\Cesta.txt")
Dim line = Await sr.ReadToEndAsync()
Process.Start(line)
End Using
End Sub
End Class
Napiš to takto, VB moc neumím, ale mělo by to jít.
Imports System.Diagnostics
Imports System.IO
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Try
Using sr As StreamReader = New StreamReader("cesta.txt")
Dim line = sr.ReadLine()
Process.Start(line)
End Using
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class
Díky ,Díky Moc jsi třída vše funguje jak má !!!
mohu se zeptat kde byla chyba abych se poučil ?
bylo to v tomto ? Imports System.Diagnostics:)
To taky, ale nevim co znamená
Await sr.ReadToEndAsync()
Což VB očividně nezná.
Na čtení řádků je prostě:
sr.ReadLine()
Možná stačilo jen oddělat Await a nechat jen:
sr.ReadToEndAsync()
Dim line = sr.ReadLine() zde se určuje řádek že ?
Edit : už jsem to udělal
Jo, ale řádek je to 1. :
dim 1_radek = sr.ReadLine()
dim 2_radek = sr.ReadLine()
No to je krásný kód. Kde už jsem ho to jenom viděl.... Ha. Už si vzpomínám. To je ten můj kód, jen jsi změnil vypsání chyby z labelu do message boxu. Jak myslíš, že se může něco naučit, když je línej si jít přečíst ty nejzákladnější tutoriály? Já ho nasměroval, dokonce jsem mu poradil co má udělat. Ani tak nebyl schopný si tam tu jednu chybu opravit. Tímhle jsi mu prokázal opravdu velkou službu. Mimochodem: ReadToEndAsync() je metoda jenž ti asynchronně přečte všechny znaky ze souboru a vytvoří z nich string. Což znamená, že kdyby četl z delšího souboru, tvou radou by se celý program zasekl než by se soubor načetl. Když ale použije ReadToEndAsync program běží v pohodě dál - http://msdn.microsoft.com/…vs.110).aspx
Jak říkám nevím co to znamená, proto jsem tam dal ReadLine.Nezměnil jsem jen to vypsání chyby, ale i naimportování
System.Diagnostics
. Nevím jestli je tady
nějakej tutoriál o procesech ve VB, ale nepříde mi to jako základní
tutoriál. A čtení ze souborů taky ne.
Čtení ze souboru je naprosto triviální a základní věc. Pokud nevím, co nějaký kus kódu dělá, nebo co znamená, první věc co dělám je, že si to jdu zjistit. O opravení importů jsem mu psal, jeho blbost, že to neopravil. A jestli tu je tutoriál na procesy na VB je jedno, protože je tu na C# a tam jsou rozdíly jen v syntaxi kterou si stejně musí neustále vyhledávat v dokumentaci.
A můžeš mi dát odkaz na procesy v C#, protože ho nemůžu najít a
potřeboval bych se taky trochu doučit.
Ten člověk očividně napsal hello world a teď si chtěl udělat něco pro
něj užitečného. Je těžké mu ukázat pár řádků kódu než do něj
rýpat, že je to nejlepší takhle a takhle? Když nebude rozumět, tak se snad
zeptá ne? Ještě mu plést hlavu s asynchronním programováním
První odkaz pokud zadáš do vyhledávání C# procesy: http://www.itnetwork.cz/…ndows-update Nevím jestli tu jsou i jiné k tomu
dedikované články, ale v nejhorším najdeš něco na Google. Bez angličtiny
to programátor stejně daleko nedotáhne.
Ten člověk mi tvrdil, jak má tutoriály načtené A žádné pletení s asynchronním
programováním nebylo. Ukázal jsem mu kód, ve kterém bylo použito kvůli
stabilitě. Je lepší aby už od začátku používal lepší variantu. Nevím
proč upravovat kód k horšímu jenom kvůli tomu, že neumí správně
naimportovat jmenný prostor, který mu ještě k tomu VS samo vyhledá. Že ani
nedokáže přejmenovat label, to už je věc další.
To bych se měl taky doučit, ale chtěl jsem spíš ty procesy.
tato diskuze je docela zajímavá.
1.) autor nezmínil že programuje, zde v méně tradičním jazyce Visual
Basic
2.) jakmile jste to pochopili, ani přesto jste si neodpiustili kód C#, což
autora jenom zmátlo.
3.) autor neumí základy, prostě neumí. Nikdo tu za něj nebude psát nikdy
nic, pokud chce něco napsat sám, tak ať se vrátí k tutoriálům http://www.itnetwork.cz/…movani/vbnet
4.) http://www.itnetwork.cz/…3dacecaacca4#… toto mě dostalo.
nevim co znamená - právě proto se v tom nemáš vrtat. VB
očividně nezná - to že to naznáš a neumíš použít ty, neznamená
že to VB nezná. sr.ReadToEndAsync() ne, právě k tomu tam ten
Await byl, ale tomu ty nerozumíš.
5.) autor neumí použít funkci vložit zdrojový kód, čimž se vlákno
značně znepřehledňuje a roboti z toho taky nejsou zrovna 3× nadšeni.
Takže si to projdeme, autorovi v kódu chybí importy, který umožní zkrátit zápis
Using (System.IO.StreamReader sr = New System.IO.StreamReader("path")
Na
Using (StreamReader sr = New .StreamReader("path")
Visual Studio mu pro to zobrazí tzv. chytrou značku, která mu to dopíše automaticky. Autor by se měl naučit anglicky, aby rozuměl co za chyby mu to píše.
Dál se o tom nemá cenu zmiňovat, autor pouze zkopíroval cizí kód a nerozumí mu, asynchronní programovaní zde popisovat nebudu.
já ve VB umím jen něco a u tohohle se přiznám že jsem to zkopíroval ale na konec jsem se to rozhodl vynechat a použít permanentní cestu k exe které jsem umístil do složky s programem .
na tohle jsem zapomněl všem děkuji za ochotu dík
Zobrazeno 42 zpráv z 42.