Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Работа с строками

Ответить
Настройки темы
C/C++ - [решено] Работа с строками

Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25


Конфигурация

Профиль | Отправить PM | Цитировать


Такая вот проблема: Надо работать с строками, например получить переменную INI = GetCurrentDir()+"\ini\options.ini"- так я делал в Visual Basic ("GetCurrentDir()" - получаем путь к ехе нашей программы, "\ini\options.ini" - кусок недостающего пути к ini файлу, тоесть наш ini файл лежал в папке ini, которая в свою очередь лежала возле нашей программы, а в переменной INI мы получали полный путь "C:\myprog\ini\options.ini"). Но в с++ так делать нельзя. Подскажите, пожалуйста, как решить мой вопрос.

Отправлено: 11:18, 24-03-2009

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


crashtuak, почему нельзя? В c++ ровно так же работает конкатенация строк через плюс. Или не найти аналога GetCurrentDir()?

Отправлено: 12:10, 24-03-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для EvgeniyQQQ

Пользователь


Сообщения: 133
Благодарности: 21

Профиль | Сайт | Отправить PM | Цитировать


crashtuak, а по точней. Какими библиотеками пользуетесь? Пишите под WinApi, MFC, Qt, .Net ?.....

-------
"Не соглашайся ни на что, кроме совершенства!" - Анонимный автор.
"Совершенство достигается только к моменту полного краха." - К.Н.Паркинсон.


Отправлено: 14:38, 24-03-2009 | #3


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Сорь "+" работает и в С++, просто надо было соединить строки, одной с которых был символ "\", и вариант INI = GetCurrentDir()+"\" не работал, зато вот так INI = GetCurrentDir()+"""""\\""" все нормально сделалось . Может кто то знает, почему именно так, а не по другому?

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 18:03, 24-03-2009 | #4


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


crashtuak, потому что это специальный символ, используется для обозначения разных непечатных управляющих символов: табуляции \t, перевода строки \n и т.п. Ваши знания Visual Basic в C++ практически не пригодятся - лучше прочитайте какую-нибудь книжку, учебник по языку - это снимет множество вопросов.

Отправлено: 18:29, 24-03-2009 | #5


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Цитата Busla:
crashtuak, потому что это специальный символ, используется для обозначения разных непечатных управляющих символов: табуляции \t, перевода строки \n и т.п. Ваши знания Visual Basic в C++ практически не пригодятся - лучше прочитайте какую-нибудь книжку, учебник по языку - это снимет множество вопросов. »
Немного читал, но вопросов появилось ещё больше))) Вот для примера:
Код: Выделить весь код
void  RunWait(char* RunCmdLine);
void  RunWait(char* RunCmdLine)
{
	STARTUPINFO si;
	PROCESS_INFORMATION pi;
	ZeroMemory( &si, sizeof(si) );
	si.cb = sizeof(si);
	ZeroMemory( &pi, sizeof(pi) );
	if(CreateProcess(NULL, RunCmdLine, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
		{
			WaitForSingleObject(pi.hProcess, INFINITE);
		}
	CloseHandle( pi.hProcess );
	CloseHandle( pi.hThread  );
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
RunWait("E:\\ShowCmdParam.exe /sdsfsf /awfasfase");
}
Я нигде не нашел, почему в RunWait("E:\\ShowCmdParam.exe /sdsfsf /awfasfase"); нада использовать "\\" в пути к файлу, вместо привычного "\", с которым файл никак не хочет открываться. Может есть решение данного вопроса инным путем, кроме как добавления "\"? (это нужно, потому что с GetCurrentDir()+"\ini\options.ехе" мы получим C:\myprog\ini\options.ехе, и таким образом прога не запустится, а как автоматом дописать "\" я незнаю)

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 19:09, 24-03-2009 | #6


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата crashtuak:
Я нигде не нашел, почему в RunWait("E:\\ShowCmdParam.exe /sdsfsf /awfasfase"); нада использовать "\\" в пути к файлу, вместо привычного "\", с которым файл никак не хочет открываться »
Цитата Busla:
потому что это специальный символ, используется для обозначения разных непечатных управляющих символов: табуляции \t, перевода строки \n и т.п. »

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 19:24, 24-03-2009 | #7


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Есле можно, приведите пожалуйста пример переделывания C:\myprog\ini\options.ехе вC:\\myprog\\ini\\options.ехе

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 21:05, 24-03-2009 | #8


Аватара для crashtuak

Старожил


Сообщения: 467
Благодарности: 25

Профиль | Отправить PM | Цитировать


Цитата crashtuak:
Есле можно, приведите пожалуйста пример переделывания C:\myprog\ini\options.ехе вC:\\myprog\\ini\\options.ехе »
Есть пердложение: посимвольно перебирать строку, потом разделить строку на части, которые заканчиваются на "\" и потом те части объединить , добавляя между ними "\". Так как нам надо переделать только путь к ехе, то и перебирать строку будем только к .ехе( выделеный момент я не знаю как реализовать). Прошу высказать недостатки моего способа и предлагать свои (свои способы а не недостатки ).

-------
Мне надо не так много "Полезных сообщений", чтоб сровнять их количество с моими постами :).


Отправлено: 21:46, 24-03-2009 | #9


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


что то мудрите вы сильно...
что мешает написать
Код: Выделить весь код
string mystring = @"C:\temp";
знак @ показывает, что это символьная переменная и можно использовать одиночные слеши.
Также есть функция Replace.
Код: Выделить весь код
string mystring = "C:\temp";
mystring.Replace("\\", "\\\\");
на выходе получим C:\\temp

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:01, 25-03-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Работа с строками

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
StringRegExp - как получить содержимое между 2-мя строками evg64 AutoIt 2 05-12-2009 01:19
Какое событие соответствует перемещению между строками ListView malev AutoIt 2 22-10-2009 15:32
Разное - [решено] Работа программ. 8Toxa8 Microsoft Windows 2000/XP 2 20-06-2008 23:58
CMD/BAT - [решено] Работа со строками в cmd-файлах melato Скриптовые языки администрирования Windows 3 30-01-2007 08:52
Помогите разобратся со строками в С++ Guest Программирование и базы данных 12 22-05-2004 04:49




 
Переход