Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 4
1

строки

18.11.2009, 00:30. Показов 432. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, помогите решить задачу:
дана строка символов, содержащая путь к файлу. Выделить имя диска, расширение файла и имя файла, если они есть. При отсутствии соответствующих данных возвращаются пустые строки.
Заранее благодарен)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2009, 00:30
Ответы с готовыми решениями:

Слить две строки, вставив символы одной строки между символами другой строки
Строка a из n символов лексикографически меньше строки b из n символов, если существует такой...

Строки. Если в конце строки точка отсутствует, то найти слово, заканчивающееся точкой и перенести его в конец строки.
Дана строка, состоящая из слов и содержащая одну точку в конце одного из слов. Если в конце строки...

Из строки сформировать новую строку, содержащую символы цифр исходной строки
Из введенной символьной строки выбрать все цифры и сформировать другую строку из этих цифр,...

Отсортировать строки матрицы по возрастанию сумм положительных элементов каждой строки
Дана прямоугольная матрица размером n x m, содержащая вещественные числа. Определить сумму...

4
1063 / 130 / 34
Регистрация: 09.10.2009
Сообщений: 271
18.11.2009, 12:05 2
есть модуль Dos, который это все возращает
Pascal
1
2
3
4
5
6
7
8
9
10
11
 uses Dos;
 var s,Dsk : string;
     Dir:DirStr;  FlNm:NameStr; FlExt :ExtStr;
begin
 writeln('File name :'); readln(s);
 s := FExpand(s);
 FSplit(s,Dir, FlNm, FlExt);
 Dsk := Dir[1];  
 writeln('Dir=', DIr, ', Disk=', Dsk, ', FileName=', FlNm, ', ext=', FlExt);
 readln;
end.
а если задача на умение работать со строками и путь всегда задан в полной форме и вообще считаем, что он корректный типа C:\Dir\.......\myfile1.txt или C:\Dir\.......\myfile1 , тогда конечно можно и без ДОСа обойтись:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
var s, FlNm, FlExt: string; Dsk: string[1];
     t: integer;
begin 
 readln(s);
 if length(s)=0 then 
 begin writeln('пустая строка!'); readln; halt;
 end;
 Dsk := s[1]; {первый символ - диск. можно еще проверить, чтоб второй был : и 3-й \ }
 FlNm :=''; FlExt :=''; t:= length(s); 
 if (pos('.', s)>0) then 
 {есть смысл с конца строки поискать расширение, а потом и имя, если хоть одна точка и \ есть}
   while (t>=1) and (s[t]<>'.') do
   begin
      FlExt := s[t]+FlExt ; t := t -1;
   end;
 
  if pos('\', s)>0 then
  begin
    if t<>length(s) then t := t-1;
    while (t>=1) and (s[t]<>'\') do
    begin FlNm := s[t]+FlNm; t := t-1;
    end;
  end;
 writeln('Disk=', Dsk, ', FileName=', FlNm, ', ext=', FlExt);
 readln;
end.
0
2923 / 844 / 324
Регистрация: 30.04.2009
Сообщений: 2,633
18.11.2009, 12:09 3
Цитата Сообщение от Dnnn Посмотреть сообщение
if (pos('.', s)>0)
можно, но не стоит так делать так как может быть такое "C:\program\per.tochka\1.php"
0
1063 / 130 / 34
Регистрация: 09.10.2009
Сообщений: 271
18.11.2009, 12:29 4
может и не стоит... с другой стороны если вообще ни одной точки - то точно и искать расширение без толку
хотя да, надо наверное добавить к проверке на точку еще и проверку на "\". и если раньше точки найдем \, то расширение = '' и имя файла начинаем искать опять с конца строки, ну или Имя:= расширение, расширение обнулить.
0
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 4
18.11.2009, 12:37  [ТС] 5
спасибо, выручили)))))
0
18.11.2009, 12:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.11.2009, 12:37
Помогаю со студенческими работами здесь

Упорядочить строки матрицы по неубыванию сумм цифр элементов этой строки
Пусть дана матрица А(п х т). Упорядочьте строки по неубыванию сумм цифр элементов этой строки....

Вырезать два первых символа символьной строки и поместить их в конец строки
Помоги те пожалуйста, решите сколько сможете. Задачи на строки. 2. Вырежьте два первых символа...

Удалить заданную часть строки и определить длину полученной строки
Дана строкой длиной до 40 символов. Используя функции по работе с символьными переменными, удалить...

Выведите количество подстрок строки a, являющихся циклическими сдвигами строки b
Строки (Время: 1 сек. Память: 16 Мб Сложность: 34%) Циклическим сдвигом строки s называется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru