powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / возможно ли ето??????????
33 сообщений из 33, показаны все 2 страниц
возможно ли ето??????????
    #32603860
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я пишу прогу по обработки *.cfg для Quake3Arena (=))
и хочу чтобы в самой проге (в exe). была база некоторых конфигов постоянно
(для тех кто знает: cooller, uNkind ...)
был листбокс, в нем имена (это ясно), а как "вмонтировать" *.cfg в exeшник??
ps cfg - это текстовый файл =)
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32603863
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
допиши его в конец и все...
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32603871
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
либо как ресурс...
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32603910
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ScareCrow
я немного ошибся не листбох, а комбобокс. как ресурс это понятно, но мне это не надо. а что такое допиши его в конце?
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32605153
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я пишу прогу по обработки *.cfg для Quake3Arena (=))
и хочу чтобы в самой проге (в exe). была база некоторых конфигов постоянно
(для тех кто знает: cooller, uNkind ...)

Как это я пропустил такую тему. Очень полезную и нужную делаете программу Я же смогу сейчас наверное только с рельсой камперить.

был листбокс, в нем имена (это ясно), а как "вмонтировать" *.cfg в exeшник??
ps cfg - это текстовый файл =)

Один из универсальных способов. Добавьте свой config как Embedded ресурс, например пусть у него, название myconfig.cfg, default namespace name = пусть будет Quake3Config (по умолчанию совпадает с названием программы, например программа называется quake3config.exe)
Тогда можно воспользоваться следующим кодом, чтобы конфиг стал доступным в runtime.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Stream stream = this.GetType().Assembly.GetManifestResourceStream("Quake3Config.myconfig.cfg");
if (stream != null)
{
	StreamReader reader = new StreamReader(stream);
	try 
	{
		string config = reader.ReadToEnd();
		System.windows.Forms.MessageBox.show(config.ToString()); // наш config
	}
	finally 
	{
		reader.Close();
	}
}

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32605526
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Sa
1) я еще немного ламер в C# =). Это все что ты написал надо вставить в
private void cmbxCfgGods_SelectedIndexChanged(...)
{
} ???

2) - The type or namespace name 'reader' could not be found (are you missing a using directive or an assembly reference?)
- The type or namespace name 'Stream' could not be found (are you missing a using directive or an assembly reference?)
- The type or namespace name 'StreamReader' could not be found (are you missing a using directive or an assembly reference?)

че это за приколы? У меня такое чувство что я для этой всей кучи строк пропустил всего одну фигню. я прав?
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32605540
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) я еще немного ламер в C# =). Это все что ты написал надо вставить в
private void cmbxCfgGods_SelectedIndexChanged(...)
{
} ???

Хоть куда, это можно оформить как процедуру считывания embedded конфига, передавать туда имя, получать string.


2) - The type or namespace name 'reader' could not be found (are you missing a using directive or an assembly reference?)
- The type or namespace name 'Stream' could not be found (are you missing a using directive or an assembly reference?)
- The type or namespace name 'StreamReader' could not be found (are you missing a using directive or an assembly reference?)

че это за приколы? У меня такое чувство что я для этой всей кучи строк пропустил всего одну фигню. я прав?

using System.IO;

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32605573
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
но все же "конфиги крутых парней =)" должны лежать на машине у того кто запускает программу и моя прога открывает их. а я хочу чтобы они находились в самой программе, не зависимо есть ли они у тебя или нет, ты все равно смиожешь их просмотреть и при желаниии переделать
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32605615
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я хочу чтобы они находились в самой программе, не зависимо есть ли они у тебя или нет, ты все равно смиожешь их просмотреть и при желаниии переделать

Ну я про это и говорю, для каждого крутого парня по embedded текстовому файлу:
a.cfg, b.cfg, c.cfg, sa.cfg and etc, где a, b, c, sa имя крутого парня
Ну и считываешь их кодом выше, вместо myconfig - подставляешь a, b, c, sa.

Конкретно то что не получается? Не знаете как текстовый файл включить в сборку?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32605701
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
именно =(
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32605749
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как текстовый файл включить в сборку?
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32605786
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В VS.NET:
File -> Add Existing Item... -> File Of Type ставить All Files - > Выбираете свой файл Open (при этом файл локально скопируется к вашему проекту).

Далее смотрим свойства файла Build Action устанавливаем в Embedded Resource

Все.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32605976
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Sa
это на самом деле все тот же Trethop
вот смотрите (я уже наверное достал =)):
у меня есть комбобокс cmbxCfgGods, в нем допустим один мой файл tr.cgf.
и есть textbox: tboxField, где я эти конфиги смотрю
дважды кликаем на форме по cmbx,
private void cmbxCfgGods_SelectedIndexChanged(object sender, System.EventArgs e)
{
Stream stream = this.GetType().Assembly.GetManifestResourceStream("Quake.tr.cfg");
if (stream != null)
{
StreamReader reader = new StreamReader(stream);
try
{
string config = reader.ReadToEnd();
tboxField.Text = config.ToString();
}
finally
{
reader.Close();
}
}
}
внимение вопрос: почему это все не работает (хотя я не знаю почему это должно работать) =)
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32605999
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
внимение вопрос: почему это все не работает (хотя я не знаю почему это должно работать) =)

То что это должно работать 100 процентов (-0.01 % на всякий случай )
Скорее всего stream равен null, поэтому и не работает:
Причин может быть несколько вопервых проверьте DefaultNameSpace правой кнопкой по Solution см. в настройках.
Второе вот здесь учитывается регистр "Quake.tr.cfg", например если у вас cfg файл называется tR.cfg, то это уже не то.

Ну и tr.cfg точно embedded resource теперь?


Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606032
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) tr.cfg - embedded resource 10
2) под "не работает" я понимал запускается, но tr не отображается в текстбоксе
3) а до DefaultNameSpace я не добрался. Solution explorer, right mouse click, но там этого нет
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606053
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) tr.cfg - embedded resource 10
2) под "не работает" я понимал запускается, но tr не отображается в текстбоксе
3) а до DefaultNameSpace я не добрался. Solution explorer, right mouse click, но там этого нет

Правой кнопкой в Solution по проекту -> General -> Default NameSpace регистр namespace тоже следует учитывать.

Посмотрите debug'ом или еще как внутрь if вы попадаете?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606101
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
стыдно признаться, но debugom в windows application я не умею пользоваться
только в console application. когда форма загружается что f10, что f11 мне не помогают
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606111
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну поставьте в редакторе BreakPoint (F9) на строчке кода внутри if. И прогоните прогамму если выполнение прервется и вы попадете в редактор, значит все ок.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606121
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
итак debugom пользоваться я научился (спасибо), но меня не выкинуло в редактор
(я точно все правильно сделал, проверил на dlgOpen, там выкинуло =))
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606143
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сюда попадаете ????:
Код: plaintext
1.
Stream stream = this.GetType().Assembly.GetManifestResourceStream("Quake.tr.cfg");
И все таки название файла точно "tr.cfg"?
DefaultNameSpace точно "Quake"?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606159
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1) точно tr.cfg
2) defaultnamespace точно Quake
!3) я вообще НЕ ПОПАДАЮ В cmbxCfgGods_SelectedIndexChanged()
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606175
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попадаете или не попадаете это другой вопрос повесте этот код просто на кнопку и проверьте получается вернуть конфиг или нет?

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606193
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на кнопку поставил. все работает, а что делать с комбобоксом
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606212
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да должен срабатывать, а вы лучше скажите что вы делаете что у вас не срабатывает

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606650
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я пишу
if (cmbxCfgGods.SelectedItem == "Trethop")
{
и весь тот преславутый текст
}


или можно (я так думаю что можно)

if (cmbxCfgGods.SelectedIndex == 1)
{
.....
}

вот и все
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606780
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну на SelectedIndex я бы не привязывался, рисковано, а в первом случае будет правильно так:
Код: plaintext
1.
2.
3.
4.
5.
if (cmbxCfgGods.SelectedItem.ToString() == "Trethop") 
{ 
и весь тот преславутый текст
}

_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32606786
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри ошибочка, понятно что не надо :)
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32607238
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вообще зачем код по конфигу, запихивать в ComboBox,
Способ "каждому крутому парню - по собственному коду" здесь явно не подходит.

Выделяем код по конфигу в отдельную процедуру и при SelectedIndexChanged вызываем нашу процедуру передаем в качестве параметра comboBox.Text, где comboBox.Text подставляем в GetManifestResourceStream.

Проще надо быть. :-)
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32607506
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
:) Ну я просто подправил ошибку в предложенном коде... а вообще ты прав, так проще...
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32607624
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а так просто нельзя?
private void cmbxCfgGods_SelectedIndexChanged(...)
{
Stream stream = this.GetType().Assembly.GetManifestResourceStream("Quake.cmbxCfgGods.SelectedItem.ToString().cfg");
if (stream != null)
{
StreamReader reader = new StreamReader(stream);
try
{
string config = reader.ReadToEnd();
tboxField.Text = config.ToString();
}
finally
{
reader.Close();
}
}
}
по-моему это верно и не надо всякие процедуры писать
ps. как вы пишете текств программ в цветных прямоугольниках здесь на форумах?
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32607644
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
но так так (читай выше) тоже не работает =(
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32607663
Trethop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2Sa
если можно то оставьте пожалуйста icq, а то у меня инета час в день, а аська постоянно
...
Рейтинг: 0 / 0
возможно ли ето??????????
    #32607680
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не думайте что С# такой умный и распознает вашу задумку
Код: plaintext
1.
this.GetType().Assembly.GetManifestResourceStream("Quake.cmbxCfgGods.SelectedItem.ToString().cfg");
может быть все таки так:
Код: plaintext
1.
this.GetType().Assembly.GetManifestResourceStream("Quake." + cmbxCfgGods.SelectedItem.ToString().Trim() + ".cfg");
А по поводу делать не делать процедуру, есть много книжек хороших по этому поводу. Дело это все стиля, ИМХО существующий код не отражает идею, а если вот появиться например такая процедура:
Код: plaintext
1.
2.
3.
4.
private string GetCoolManConfig(string coolManName)
{
   //bla-bla-bla
}
то станет понятно что есть что.

P.S. По поводу квадратиков, нажмите Цитировать и увидите все используемые спецсимволы
...
Рейтинг: 0 / 0
33 сообщений из 33, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / возможно ли ето??????????
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]