NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Spuštění s parametry

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

Aktivity
Avatar
Theodor Johnson
Tvůrce
Avatar
Theodor Johnson:13.9.2012 15:56

Chtěl jsem se zeptat jakým způsobem lze spustit program ze souboru, tak aby si načetl třeba do stringu cestu svého spouštěče? Třeba když chci spustit hru na DOSboxu tak si nespustím dosbox a nehledám cestu, ale přesunu ikonu souboru na dosbox. Jestli by šlo to udělat tak, že by se třeba mp3 dala spustit přes applikaci a jak to udělat aby si s tím poradila?

Odpovědět
13.9.2012 15:56
Mo8ilε 15 Ѐλđ
Avatar
Theodor Johnson
Tvůrce
Avatar
Theodor Johnson:28.9.2012 18:09

Trvalo mi dlouho než jsem na to přišel, ale pokud by se to někomu hodilo, tak stačí do konstruktoru (Main()) Program.cs změnit na Main(string[] args) a args jsou cesty souborů ze kterých byl program spuštěn.

Nahoru Odpovědět
28.9.2012 18:09
Mo8ilε 15 Ѐλđ
Avatar
Kit
Tvůrce
Avatar
Odpovídá na Theodor Johnson
Kit:28.9.2012 18:14

Podle mne by v args měl být spíš spouštěcí řetězec programu. Jako první prvek v seznamu jméno programu a za ním jeho parametry.

Nahoru Odpovědět
28.9.2012 18:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:28.9.2012 18:17

Jo, 1. bývá celý řetězec s cestou k programu, další parametry z příkazové řádky. Myslím, že tady to je stejně.

Nahoru Odpovědět
28.9.2012 18:17
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:28.9.2012 18:26

Vývojáři by se občas mohli trochu sjednotit. V PHP má ta proměnná název $argv.

Nahoru Odpovědět
28.9.2012 18:26
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:28.9.2012 18:49

Mě přijde, že to chce mít každý nejvíce kůl, jinak si nedokážu odůvodnit, proč v PHP text echujeme :)

Nahoru Odpovědět
28.9.2012 18:49
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:28.9.2012 18:56

Protože se nám nechce měnit kontext :)

Možná máš na mysli funkci printf(), kterou moc nepoužívám.

Nahoru Odpovědět
28.9.2012 18:56
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:28.9.2012 19:03

Co myslíš kontextem? Že je echo struktura?

Nahoru Odpovědět
28.9.2012 19:03
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:28.9.2012 19:06

Změna kontextu je uzavření ?>, napsání textu a opět otevření <?php. Někdo to dělá systematicky, já nikdy.

Nahoru Odpovědět
28.9.2012 19:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:28.9.2012 19:22

Ne, já jen narážel na jméno té funkce echo, proč se primárně nepoužívá printf. Je to asi proto, že echo umožňuje vynechávat závorky, ale proč to není opačně :)

Nahoru Odpovědět
28.9.2012 19:22
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:28.9.2012 19:29

Funkce printf() dělá substituce v prvním parametru, což nemusí být vždy žádoucí. Ovšem je sporné, co je vlastně přehlednější.

Nahoru Odpovědět
28.9.2012 19:29
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:28.9.2012 19:33

Aha, tak jsem myslel echo a print.

Nahoru Odpovědět
28.9.2012 19:33
New kid back on the block with a R.I.P
Avatar
Kit
Tvůrce
Avatar
Odpovídá na David Hartinger
Kit:28.9.2012 19:36

No jo, když k tomu přidám puts() v Ruby...

Nahoru Odpovědět
28.9.2012 19:36
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Kit
David Hartinger:28.9.2012 19:50

a try... with v F# :D Možná sem dám něco jako Hello world v různých jazycích, už jsem to někde viděl, tak vybrat nějaké zajímavé.

Nahoru Odpovědět
28.9.2012 19:50
New kid back on the block with a R.I.P
Avatar
petr.chatar.anton:29.7.2013 13:35

Oživím tohle téma a chtěl bych se zeptat:
mám úplně jednoduchý program typu echo a chtěl bych mu z jako parametr předat text, který má vypisovat spolu s datem a časem. Jak se tomu programu parametr předá? Např. pro volání MojeECHO "Zpracování ukončeno".
Dík

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

namespace PAecho
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime datum;
            String predanyText;
            datum = DateTime.Now;
            Console.WriteLine("{0} {1}", datum, predanyText);
            Console.ReadKey();
        }
    }
}
Editováno 29.7.2013 13:37
 
Nahoru Odpovědět
29.7.2013 13:35
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na petr.chatar.anton
David Hartinger:29.7.2013 13:38

Koukni se do hlavičky té metody ;)

Nahoru Odpovědět
29.7.2013 13:38
New kid back on the block with a R.I.P
Avatar
petr.chatar.anton:29.7.2013 13:45

Myslíš takhle?

static void Main(string[] predanyText)
         {
             DateTime datum;
             /// String predanyText;
             datum = DateTime.Now;
             Console.WriteLine("{0} {1}", datum, predanyText);
             Console.ReadKey();
         }

Asi ne, něco mi tam chybí ...

Editováno 29.7.2013 13:47
 
Nahoru Odpovědět
29.7.2013 13:45
Avatar
Theodor Johnson
Tvůrce
Avatar
Odpovídá na petr.chatar.anton
Theodor Johnson:29.7.2013 14:05

Chybí, predanyText je pole stringu, takže bys musel napsat Console.Write­Line("{0} {1}", datum, predanyText[0]);

Nahoru Odpovědět
29.7.2013 14:05
Mo8ilε 15 Ѐλđ
Avatar
petr.chatar.anton:30.7.2013 11:53

Děkuju za pomoc, už mi to chodí.

 
Nahoru Odpovědět
30.7.2013 11:53
Avatar
lopi.trucker
Člen
Avatar
Odpovídá na petr.chatar.anton
lopi.trucker:30.7.2013 13:43

pro to přetažení jsem to řešil takhle:

private void Form1_DragEnter(object sender, DragEventArgs e)
        {
            //e.Effect = DragDropEffects.All;
            string[] poleSoubor = (string[])(e.Data.GetData(DataFormats.FileDrop, false));   //vrátí pole s adresama k souborům
            soubor = Convert.ToString(poleSoubor[0]);
            FileInfo fi = new FileInfo(soubor);
            if (fi.Extension == ".ada")
            {
                StreamReader sr = new StreamReader(soubor);
                soubor = sr.ReadToEnd();
                vyplnDataAda(soubor);
            }
            else if (fi.Extension == ".html")
            {
                vyplnDataHtml(soubor);
            }
            else
            {
                SystemSounds.Asterisk.Play();
                string text = "Nepodporovaný soubor!!!";
                messBox messBox = new messBox(text);
                minimalizuj = false;
                messBox.ShowDialog();
                minimalizuj = true;
                //MessageBox.Show("Nepodporovaný soubor!!!", "Chyba", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 
Nahoru Odpovědět
30.7.2013 13:43
Avatar
lopi.trucker
Člen
Avatar
Odpovídá na lopi.trucker
lopi.trucker:30.7.2013 13:54

a co se týče toho spuštění ze souboru tak to si musíš asociovat přes registry svoji příponu souboru, toto jsem vyřešil přes instal creator ve VS 2010, protože když jsem to zkoušel přes regi tak mi to dělalo bordel, chovalo se to jinak na XP, W7, W8 tak jsem to udělal přes ten instal cerator ve VS, kde je možnost si i zaregistrovat svoji příponu a je to bez starostí a problemů na různých platformách woken tady je návod na tubu:

https://www.youtube.com/watch?…

 
Nahoru Odpovědět
30.7.2013 13:54
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 21 zpráv z 21.