Текущий архив: 2004.06.20;
Скачать: CL | DM;
Вниз
выделить каталог предпоследнего уровня в пути Найти похожие ветки
← →
denis24 (2004-06-03 15:14) [0]Помогите пожалуста!
Есть строка c:\test\test_1\ready\data\
Как выделить слово "ready"?
← →
Reindeer Moss Eater © (2004-06-03 15:16) [1]StrRScan c циклом
← →
Digitman © (2004-06-03 15:35) [2]Если в строке пути не встречаются запятые, то :
1. Убери терминирующий бэкслэш
2. Замени оставшиеся бэкслэши на запятые
3. Создай объект класса TStringList
4. Загрузи его через св-во CommaText полученной строкой
5. Получи имя предпоследнего уровня (если таковой имеется) вызовом св-ва StringList[Count - 2]
← →
panov © (2004-06-03 15:47) [3]ExtractFileName(ExcludeTrainlingBackSlash(ExtractFilePath(ExcludeTrainlingBackSlash(Path))))
← →
denis24 (2004-06-03 16:14) [4]to Digitman
list_of_catalog.CommaText :="1,2,3"
А вот с последним пунктом не понял
← →
WebErr © (2004-06-03 16:15) [5]Подстрока между 2-м и 3-м символом "\".
Cycle однозначно!
Count := 0;
for I := Length(S) downto 1 do
if S[I] = "\" then
begin
Inc(Count);
case Count of
2: N := I-1; // последний символ
3: begin
M := I+1; // первый символ
Break;
end;
end;
end;
SubS := Copy(S, M, N-M+1);
← →
Anatoly Podgoretsky © (2004-06-03 16:41) [6]Digitman © (03.06.04 15:35) [2]
В имени допустимы запятые
← →
Игорь Шевченко © (2004-06-03 16:44) [7]
procedure StrBreakApart(const S, Delimeter: string; Parts: TStrings);
var
curPos: integer;
curStr: string;
begin
Parts.clear;
if Length(S) = 0 then
Exit;
curStr:= S;
repeat
curPos:= AnsiPos(Delimeter, curStr);
if curPos>0 then begin
Parts.add(copy(curStr, 1, curPos-1));
curStr:= copy(curStr, curPos+1, length(curStr)-(curPos));
end else
Parts.add(curStr);
until curPos=0;
end;
StrBreakApart (YourString, "\", StringList);
Страницы: 1 вся ветка
Текущий архив: 2004.06.20;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.022 c