0 / 0 / 2
Регистрация: 19.10.2013
Сообщений: 58
1

Ввести адрес файла и разобрать его на части

20.11.2013, 23:08. Показов 18180. Ответов 7
Метки нет (Все метки)

Помогите с решением.
УСЛОВИЕ:

ввести адрес файла и разобрать его на части ,разделённые знаком '/'.Каждую часть вывести в отдельной строке.

РЕШЕНИЕ:
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
var s,s1:string; i,n:integer; f,g:text;
begin
assign(f,'input.txt');
assign(g,'output.txt');
reset(f);
rewrite(g);
 
writeln(f,'‚¢¥¤¨â¥ ¢ëà*¦¥*¨¥');
readln(g,s);
  i:=1;s1:='';
while pos('/',s)<>0 do
begin
s1:=s1+s[i];
i:=i+1;
n:=pos('/',s);
s1:=copy(s,1,n-1);
delete(s,1,n);
 
 
writeln(g,s1);
end;
writeln(g,s);
     close(f);
     close(g);
end.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2013, 23:08
Ответы с готовыми решениями:

Ввести адрес файла и разобрать его на части(строчки с++)
Помогите,пожалуйста,решить следующую задачу. Ввести адресс файла и разобрать его на части...

Ввести адрес файла и «разобрать» его на части, разделенные знаком '/'. Каждую часть вывести в отдельной строке
Ввести адрес файла и «разобрать» его на части, разделенные знаком '/'. Каждую часть вывести в...

Ввести предложение и разобрать его на отдельные слова
Ввести предложение и разобрать его на отдельные слова. Заранее спасибо!

Можно ли ввести адрес в строку браузера, не открывая его
Что именно надо: есть браузер (буду рад примеру работы с любым из них) нужно научить программу...

7
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32449 / 20943 / 8105
Регистрация: 22.10.2011
Сообщений: 36,210
Записей в блоге: 7
22.11.2013, 19:59 2
Эта задача гораздо проще решается:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  s : string;
  i : Integer;
begin
  assign(input, 'input.txt'); reset(input);
  assign(output, 'output.txt'); rewrite(output);
 
  readln(s);
  for i := length(s) downto 1 do
    if s[i] = '/' then
    begin
      delete(s, i, 1);
      insert(#13#10, s, i);
    end;
 
  writeln(s);
end.
1
0 / 0 / 2
Регистрация: 19.10.2013
Сообщений: 58
24.11.2013, 11:15  [ТС] 3
Цитата Сообщение от UI Посмотреть сообщение
Эта задача гораздо проще решается:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  s : string;
  i : Integer;
begin
  assign(input, 'input.txt'); reset(input);
  assign(output, 'output.txt'); rewrite(output);
 
  readln(s);
  for i := length(s) downto 1 do
    if s[i] = '/' then
    begin
      delete(s, i, 1);
      insert(#13#10, s, i);
    end;
 
  writeln(s);
end.
объясни пожалуйста строчку insert(#13#10, s, i); что означает и что именно такое "#13#10"????
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7494 / 4363 / 2774
Регистрация: 22.11.2013
Сообщений: 12,494
Записей в блоге: 1
24.11.2013, 16:22 4
В DOS/Windows разделителем строк является пара символов с кодами 13 и 10. В паскале строку из двух символов с кодами 13 и 10 можно записать как #13#10 или ^M^J. Эту последовательность выводит WriteLn и то, чем он отличается от Write. WriteLn('нечто') в DOS/Windows -- это Write('нечто', #13#10).

insert(#13#10, s, i); вставит разделитель строки в позиции i (в которой был найден разделитель элементов пути).

WriteLn(s) выведет несколько строк.

В Linux в качестве разделителя используется один символ с кодом 10 -- #10 или ^J.
В Mac, если правильно путаю, один с кодом 13 -- #13 или ^M.
0
0 / 0 / 2
Регистрация: 19.10.2013
Сообщений: 58
24.11.2013, 17:45  [ТС] 5
Цитата Сообщение от bormant Посмотреть сообщение
В DOS/Windows разделителем строк является пара символов с кодами 13 и 10. В паскале строку из двух символов с кодами 13 и 10 можно записать как #13#10 или ^M^J. Эту последовательность выводит WriteLn и то, чем он отличается от Write. WriteLn('нечто') в DOS/Windows -- это Write('нечто', #13#10).

insert(#13#10, s, i); вставит разделитель строки в позиции i (в которой был найден разделитель элементов пути).

WriteLn(s) выведет несколько строк.

В Linux в качестве разделителя используется один символ с кодом 10 -- #10 или ^J.
В Mac, если правильно путаю, один с кодом 13 -- #13 или ^M.
а как например этот разделитель заменить?
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7494 / 4363 / 2774
Регистрация: 22.11.2013
Сообщений: 12,494
Записей в блоге: 1
24.11.2013, 18:55 6
Не совсем понятен вопрос. Заменить где?
0
0 / 0 / 2
Регистрация: 19.10.2013
Сообщений: 58
25.11.2013, 13:54  [ТС] 7
Цитата Сообщение от bormant Посмотреть сообщение
Не совсем понятен вопрос. Заменить где?
а как можно ещё эту задачу решить.мне нужно более подробное такое.потому что #13#10 мы не изучали
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7494 / 4363 / 2774
Регистрация: 22.11.2013
Сообщений: 12,494
Записей в блоге: 1
25.11.2013, 14:32 8
В качестве совсем дубового варианта можно так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
const
  PathDelim = '/';
var
  s: string;
begin
  WriteLn('Введите адрес файла, разделение каталогов по "', PathDelim, '":');
  ReadLn(s);
  while Pos(PathDelim, s) <> 0 do begin
    WriteLn(Copy(s, 1, Pos(PathDelim, s)));
    Delete(s, 1, Pos(PathDelim, s));
  end;
  if s <> '' then WriteLn(s);
end.
или ещё проще:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
const
  PathDelim = '/';
var
  s: string;
  i: integer;
begin
  WriteLn('Введите адрес файла, разделение каталогов по "', PathDelim, '":');
  ReadLn(s);
  for i := 1 to Length(s) do begin
    Write(s[i]);
    if s[i] = PathDelim then WriteLn;
  end;
  WriteLn;
end.
Добавлено через 1 минуту
Если разделитель выводить не надо, то:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
const
  PathDelim = '/';
var
  s: string;
  i: integer;
begin
  WriteLn('Введите адрес файла, разделение каталогов по "', PathDelim, '":');
  ReadLn(s);
  for i := 1 to Length(s) do 
    if s[i] = PathDelim then WriteLn else Write(s[i]);
  WriteLn;
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.11.2013, 14:32
Помогаю со студенческими работами здесь

Ввести адрес файла, который необходимо открыть
Всем привет! Возник вопрос, который я не смог нигде найти. Требуется написать программу, в коде...

Ввести символьный массив; найти адрес всех парных его элементов символьного массива
Ввести символьный массив. Найти адрес всех парных его элементов


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru