![]() |
Работа с строками
Такая вот проблема: Надо работать с строками, например получить переменную INI = GetCurrentDir()+"\ini\options.ini"- так я делал в Visual Basic ("GetCurrentDir()" - получаем путь к ехе нашей программы, "\ini\options.ini" - кусок недостающего пути к ini файлу, тоесть наш ini файл лежал в папке ini, которая в свою очередь лежала возле нашей программы, а в переменной INI мы получали полный путь "C:\myprog\ini\options.ini"). Но в с++ так делать нельзя. Подскажите, пожалуйста, как решить мой вопрос.
|
crashtuak, почему нельзя? В c++ ровно так же работает конкатенация строк через плюс. Или не найти аналога GetCurrentDir()?
|
crashtuak, а по точней. Какими библиотеками пользуетесь? Пишите под WinApi, MFC, Qt, .Net ?.....
|
Сорь "+" работает и в С++, просто надо было соединить строки, одной с которых был символ "\", и вариант INI = GetCurrentDir()+"\" не работал, зато вот так INI = GetCurrentDir()+"""""\\""" все нормально сделалось :) :) :) . Может кто то знает, почему именно так, а не по другому?
|
crashtuak, потому что это специальный символ, используется для обозначения разных непечатных управляющих символов: табуляции \t, перевода строки \n и т.п. Ваши знания Visual Basic в C++ практически не пригодятся - лучше прочитайте какую-нибудь книжку, учебник по языку - это снимет множество вопросов.
|
Цитата:
Код:
void RunWait(char* RunCmdLine); |
Цитата:
Цитата:
|
Есле можно, приведите пожалуйста пример переделывания C:\myprog\ini\options.ехе вC:\\myprog\\ini\\options.ехе
|
Цитата:
|
что то мудрите вы сильно...
что мешает написать Код:
string mystring = @"C:\temp"; Также есть функция Replace. Код:
string mystring = "C:\temp"; |
Delirium, я же С++ учу два дня. Огромное спасибо, а то я бы долго свой способ реализовывал :)
|
Цитата:
|
Блин, вот код:
Код:
void RunWait(AnsiString EXEFILE); |
Цитата:
crashtuak, не нужно вам ничего подменять - литералы со слэшем имеют особое значение только в коде программы - в памяти строки хранятся в обычном виде (без всяких удвоений \). Т.е. часть пути, которую указываете в коде явно "\ini\options.ini" надо набрать с двойным слэшем, а результаты работы функций никак преобразовывать не надо. |
Busla, спасибо, наконец то нубу сказали что сделать! :) :) :) :) :) . А я то ломаю голову, уже запарился блин. Большое спасибо, все работает.
Цитата:
|
Цитата:
Код:
#include <string> Код:
D:\temp\3>bcc32 1.cpp |
Цитата:
Согласен, я предложил неверный для crashtuak вариант. Я подумал, что ему просто надо строку получить с 2-мя слешами, а не то, что он пытается запустить команду в преобразованной строке. |
Время: 19:40. |
Время: 19:40.
© OSzone.net 2001-