Вопрос по C++

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#31 Сообщение 12.09.2010, 08:48

GanGSISoft
Кажись, strstr или _lstrstr или lstrstr (точно не помню %) )

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#32 Сообщение 12.09.2010, 10:18

А что за функция-то? Что делает?
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
$t@t!c_V()1D
Разработчик
Разработчик
Сообщения: 2639
Зарегистрирован: 06.12.2007
Благодарил (а): 10 раз
Поблагодарили: 29 раз

#33 Сообщение 12.09.2010, 11:52

Pos в Паскале/Дельфине ищет смещение подстроки в строке, если таковая есть.

Аватара пользователя
Rama
Модератор
Модератор
Сообщения: 1143
Зарегистрирован: 28.03.2008
Благодарил (а): 389 раз
Поблагодарили: 240 раз
Контактная информация:

#34 Сообщение 12.09.2010, 12:00

GanGSISoft
Посмотри-ка тут

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#35 Сообщение 12.09.2010, 12:17

$t@t!c_V()1D
А, тогда верно. strstr для char* и substr для string.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#36 Сообщение 12.09.2010, 13:23

Спасибо, но что strstr возвращает? У меня Null выходит, и почему возвращает значение в char*?

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#37 Сообщение 12.09.2010, 13:28

strstr возвращает указатель на начало искомой подстроки в строке.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#38 Сообщение 12.09.2010, 13:43

Ясно. А почему ни fopen fopen_s не открывают файл, если им передать полный путь, только если лежит в рабочей директории. И как сменить рабочую папку?

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#39 Сообщение 12.09.2010, 13:48

GanGSISoft
Это не консоль, чтобы менять рабочую папку. Можно, конечно, попробовать ShellExecute... Но это гугли сам.
Полный путь должен передаваться с учётом экранирования символов:

Код: Выделить всё

FILE * inputfile;
inputfile = fopen("C:\\Documents and Settings\\All Users\\1.txt","r");
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#40 Сообщение 12.09.2010, 13:56

NiGHt-LEshiY
Спасибо, две палочки помогли, я и не подумал что палочка эта является системным символом для С.
А папка должна менятся. В Delphi менялась. Просто при запуске из среды разработки она почему то ставится c:\windows

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#41 Сообщение 12.09.2010, 14:05

А папка должна менятся. В Delphi менялась.
Если что-то делается в дельфи, это не значит, что должно делаться везде. Однако, это наверняка возможно, но не нужно.
Вот пример "смены" директории без её смены %)

Код: Выделить всё

char workdir[255];
char filename[255];
int randworkdir = rand()%3;
int randfilename = rand()%3;

switch (randworkdir)
{
case 0:
   workdir = "C:\\Program Files\\";
   break;
case 1:
   workdir = "C:\\Windows\\";
   break;
case 2:
   workdir = "C:\\Documents and Settings\\All Users\\";
   break;
}

switch (randfilename)
{
case 0:
   filename = "1.txt";
   break;
case 1:
   filename = "meatspin.swf";
   break;
case 2:
   filename = "anal_rape.mpg";
   break;
}

FILE * inputfile;
inputfile = fopen(strcat(workdir, filename), "r");
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Lev2008
Лейтенант
Лейтенант
Сообщения: 221
Зарегистрирован: 08.11.2008

#42 Сообщение 12.09.2010, 17:06

NiGHt-LEshiY
Вы конечно простите, но это даже компилиться не будет:

Код: Выделить всё

char workdir[255];
workdir = "C:\\Program Files\\";
Если уж на то пошло:

Код: Выделить всё

char workdir[255];
strcpy(workdir, "C:\\Program Files\\");
Или, чтоб не волноваться за стек:

Код: Выделить всё

char workdir[255];
strncpy(workdir, "C:\\Program Files\\", 255);
workdir[254] = 0;
GanGSISoft писал(а):Просто при запуске из среды разработки она почему то ставится c:\windows
Не знаю чем Вы пользуетесь для разработки, но посоветую посмотреть в свойствах проекта - там может быть указание рабочей директории при отладке.
Последний раз редактировалось Lev2008 12.09.2010, 17:08, всего редактировалось 1 раз.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#43 Сообщение 12.09.2010, 18:24

Если что-то делается в дельфи, это не значит, что должно делаться везде.
Ну тут не именно в Delphi. Оно же просто есть у всех windows программ, или папка откуда запущена, или указанная, например, в ярлыке. Поэтому наверняка должно меняться какой то функцией, но теперь оно уже мне не надо.

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#44 Сообщение 12.09.2010, 18:57

Lev2008
Ваша правда. Писал наскоро и без компилятора под рукой...
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
GanGSISoft
Полковник
Полковник
Сообщения: 1430
Зарегистрирован: 27.03.2008
Откуда: Бацькаўшчына
Благодарил (а): 2 раза
Поблагодарили: 3 раза
Контактная информация:

#45 Сообщение 16.09.2010, 19:36

Вот знаю из Delphi что рисовать можно через Canvas, но в Visual C++ не нашёл его ни у формы, ни у pictureBox. Решил поискать, и выяснилось что на C++Builder и C# оно есть, а тут нету, есть ли что подобное на Visual C++, или ка рисовать на pictureBox?

Ответить