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

Tvůrce

Zobrazeno 20 zpráv z 20.
//= 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.
Výchozí to je:
Namespace.Class.Method
Když si dáš using
tak nemusíš psát ten prefix a stačí tedy
jen Třída. Pokud máš více tříd a nechceš je vypisovat tak ten using
prodloužíš.
Například using System.Net;
,
using System.Net.Mail;
Dotaz je moc obecný. Zapracuj na psaní otázek a přikládat nějaký kód
??
Myslím, že je na místě popsat dobře tvůj problém... Každopádně napadají mě 2 věci, jak jsi to mohl myslet - jak získat seznam metod/tříd/enumů/struktur/rozhraní...? Používáš-li VS, stačí napsat někam do metody daný namespace a hned za něj napsat tečku... Pochopitelně mnohdy bude lepší zajít na oficiální manuál - který je zatraceně dobře vedený. Mnohem nepravděpodobněji mi zní verze č.2 - přidal jsi příslušnou referenci?
Pokouším se zprovoznit toto :
http://programujte.com/…soubory-v-c/
V using mám
using Ini;
a když někam napíšu Ini. (chci napsat něco jako Ini.IniWriteValue) tak mi jde jen Ini.IniFile
INI - zase? Ne - prosím ať je to jen zlý sen...
Pokud myslíš
Ini IniSoubor = new Ini();
tak
Error 1 'Ini' is a 'namespace' but is used like a 'type'
Né Namespace, ale třídy. Achj, měl by sis projít základy
díky ale ty tvoje TXT soubory neberu,nehodlám vytvářet 4 soubory nebo 5 minut přemýšlet co každý řádek znamená,nehledě na to že by se to pokaždé zapsalo na jiný
Tak udělej databázi - ale INI? (A přečti si nadpis té stránky...)
Pane bože, po sté, použij XML. INI se v .NET a nepoužívá, stejně jako v mainstreamu obecně.
Ajó....tkže
IniFile iniSoubor = new IniFile(@"konfig.ini");
Díky
Naprosto jednoduše.
Ukládání:
public static void saveSettingsFile(string filePath, Dictionary<string, string> dictionary)
{
using (StreamWriter sw = new StreamWriter(folder + filePath, false))
{
foreach (var entry in dictionary)
{
sw.WriteLine(entry.Key + ":=" + entry.Value);
}
}
}
Načítání:
public static Dictionary<string, string> loadSettingsFile(string filePath)
{
Dictionary<string, string> settings = new Dictionary<string, string>();
try
{
using (StreamReader sr = new StreamReader(folder + filePath))
{
string line;
string[] splited;
while ((line = sr.ReadLine()) != null)
{
splited = line.Split(new string[] { ":=" }, StringSplitOptions.None);
if (splited.Length > 2)
for (int i = 2; i < splited.Length; i++)
splited[1] += ":=" + splited[i];
settings.Add(splited[0], splited[1]);
}
}
}
catch (Exception)
{
Console.WriteLine("load settings ex - file not exists");
}
return settings;
}
A k tvému předchozímu příspěvku, abych teda jen nekomandoval. Má to
být Namespace.Třída název = new Namespace.Třída();
Vytváříš instanci třídy. Né namespace. Pokud si dáš using Namespace.
Tak pak voláš jen Třída.
Tedy
using Ini;
IniFile myFile = new IniFile();
myFile.IniWriteValue();
Jó a teď tě tu ještě kazim ukázkou jak jednoduše použít INI soubory, když se má používat XML. Vidíš co děláš?
btw. nevíš jak udělat aby se mi to neukládálo do složky C:/Windows ?
(tam to http://programujte.com/…soubory-v-c/ )
Nepoužívej to jejich. Použij to moje, když už sem ti to poslal ne?
Tam si dáš pěkně:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + Path.DirectorySeparatorChar + "MojeAplikace" + Path.DirectorySeparatorChar;
A pohodička
Takže pokud napíšu
using Ini;
IniFile myFile = new IniFile();
je to stejné jako
Ini.IniFile myFile = new Ini.IniFile();
Pomocí using
vlastně jen definuji seznam míst, kde se má
hledat třída IniFile
. Něco jako PATH. Doufám, že jsem to
pochopil správně.
Ano, zpřístunuješ tak jednotlivé jmenné prostory, které jsou v sobě zanořené. V případě kolize musíš specifikovat celou cestu nebo vytvořit alias.
Zobrazeno 20 zpráv z 20.