C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
клюк с "\\"
Guest
  Отправлено: 20.01.2006, 00:39


Не зарегистрирован







Имеется переменная типа CString s которая содержит строку s=”D:\Documents and Settings\User\Рабочий стол\viewtopic2.htm” мне нужно в этой строке определить позицию первого слеша с права я это делаю так s. ReverseFind('\\'); но почему-то функция не находит ни одного слеша , если слеш в другую сторону то все ок wink.gif
Grigoriy
Отправлено: 20.01.2006, 02:15


Мастер участка

Группа: Участник
Сообщений: 381



Непойму, какой файл нужно подключать, чтобы использовать строки типа CString. Я через поиск файлов нашел, что такой класс описывается в файле "...CBuilder6\Include\Mfc\afx.h", но при компиляции возникает ошибка на строке
#include // Target version control
в файле afx.h.
У меня 6 версия СBuiler-а.
Konstantine
Отправлено: 20.01.2006, 11:29


Мастер участка

Группа: Модератор
Сообщений: 545



когда вводите строки в тексте программ вместо "\" пишите "\\" , и следовательно вместо "\\" — "\\\\"
это базовый С — символ \ обозначает управляющую последовательность, например — \n — конец строки, поэтому для возможности ввести симво \\ нужно писАть управляющую последовательнось \\
Guest
Отправлено: 20.01.2006, 15:09


Не зарегистрирован







Не знаю(ReverseFind('\\')), что это за функция, но на верное надо писать ReverseFind('\')
Я бы использовал

char * AnsiStrRScan(char * Str, char Chr), где Chr = '\'
возвращает указатель на последнее вхождение символа Chr в Str или NULL,
находится в SysUtils.hpp
Guest
Отправлено: 20.01.2006, 15:32


Не зарегистрирован







QUOTE

когда вводите строки в тексте программ вместо "\" пишите "\" , и следовательно вместо "\" — "\\"

Дело в том что ни я формирую строку s=”D:\Documents and Settings\User\Рабочий стол\viewtopic2.htm” а получаю ее из IE
QUOTE

на верное надо писать ReverseFind('\')

Что касается s.ReverseFind('\') то компилятор выдает ошибку
Rius
Отправлено: 24.01.2006, 09:02


Мастер участка

Группа: Участник
Сообщений: 321



QUOTE (Guest @ 20/01/2006, 18:32)
QUOTE

на верное надо писать ReverseFind('\')

Что касается s.ReverseFind('\') то компилятор выдает ошибку

ReverseFind('\\') или ReverseFind("\\")

для получения каталога/имени файла/расширения из строки типа "D:\Documents and Settings\User\Рабочий стол\viewtopic2.htm" есть специальные функции.
Gal
Отправлено: 24.01.2006, 10:44


Станционный диспетчер

Группа: Участник
Сообщений: 124



В принципе не понятно зачем может понадобится последнее вхождение "\".
если это связано с именем файла, то есть хорошие функции:
ExtractFileDir, ExtractFileDrive,ExtractFileName, ExtractFileExt,ExtractFilePath.
см. Help

Вернуться в Вопросы программирования в C++Builder