IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Нужна помошь в решение задачи!..По теме Файлы, не знаю как решать!
сообщение
Сообщение #1


Гость






Тема:Файлы(текствовые);
ЗАДАЧА:
Дан текст, в котором есть одна открывающаяся и одна закрывающаяся скобка. Вывести на экран все символы, расположенные внутри этих скобок.

Причём нужна брать текст из файла вывести на экран...
А в тесте несколько строчек!
Нужен Текст задачи!!
P.S.
Лучше решить задачу в делфи...
Но можно и в паскале...сам потом передалаю

ЗАРАНЕЕ спасибо!!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +


Ну по идее можно так : читаешь строку с файла, потом пробегаешь по ней до того момента как находишь скобку (, после этого выводишь на экран всё, что после этой скобки до тех пор пока не встретишь ) скобку. Так как ты написал что в строке только одна открывающая и закрывающая скобка, то задание не требует дополнительных проверок.
Если я верно понял, то вот, что вышло, не судите строго, давно не кодил :
Uses crt;
Const filename = 'Data.txt';
Var f : Text;
s : string;
i : integer;
openn,closee : boolean;
begin
Clrscr;
assign (f,filename);
Reset (f);
while not eof(f) do
begin
readln (f,s);
openn := False;
Closee := False;
writeln;
for i := 1 to Length(S) do
begin
if s[i] = '(' then openn := True else if s[i] = ')' then Closee := True;
if (Openn and Not(Closee)) and (s[i] <> '(') then write (s[i] : 2);
end;
end;
Close (f);
readkey;
end.


Сообщение отредактировано: Tan -


--------------------
Цитата
Imagination is more important than knowledge.
Albert Einstein
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +



// ...
readln(f, s);
writeln(Copy(s, Pos('(', s) + 1, Pos(')', s) - Pos('(', s) - 1));


?


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
А в тесте несколько строчек!
?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


blink.gif

Ээ ну я цикл чтения из файла опустил ... Думал это и так понятно.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Ну, вот мне непонятно... Ты что, прилепить все строки одна к другой собрался? А длины 255 символов хватит? А если нет - то как ты через Pos одновременно ищешь в одной и той же строке и открывающую и закрывающую скобку?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


)) Понял smile.gif

Сглючило на то что в файле в каждой строке есть по 2 скобки ...

Ну тогда вот так:

uses crt;

var
f: Text;
s: Char;

begin
assign(f, 'text.txt');
reset(f);
while not(eof(f)) do begin
read(f, s);
while not(eof(f)) and (s <> '(') do read(f, s);
if not(eof(f)) then read(f, s);
while not(eof(f)) and (s <> ')') do begin
write(s);
read(f, s);
end;
end;
close(f);
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Цитата(klem4 @ 16.06.2007 19:47) *

)) Понял smile.gif

Сглючило на то что в файле в каждой строке есть по 2 скобки ...

Ну тогда вот так:

uses crt;

var
f: Text;
s: Char;

begin
assign(f, 'text.txt');
reset(f);
while not(eof(f)) do begin
read(f, s);
while not(eof(f)) and (s <> '(') do read(f, s);
if not(eof(f)) then read(f, s);
while not(eof(f)) and (s <> ')') do begin
write(s);
read(f, s);
end;
end;
close(f);
end.



ага...пасибочки...
я её переделал в делфи...
она работает...но у меня получается что он выводит по одной букве(т.е по одному символу в строчку)

var
s:string;{Если я меняю на string то задача виснит}
begin
assignfile(g,'myfile.txt');
Reset(g);
while not eof(g) do begin
read(g,s);
while not(eof(g)) and (s <> '(') do read(g,s);
if not(eof(g)) then read(g,s);
while not(eof(g)) and (s <> ')') do begin
Memo2.Lines.Add(s);
read(g,s);
end;
end;
closefile(g);
end;
end.


не подскажите как это сделать???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






В Дельфях можно так сделать:
procedure TForm1.Button1Click(Sender: TObject);
var sl: tstringlist;
begin
sl := tstringlist.Create;
try
sl.LoadFromFile('txt.txt');
memo1.Text :=
Copy(sl.Text, Pos('(', sl.Text) + 1, Pos(')', sl.Text) - Pos('(', sl.Text) - 1);
finally
sl.Free;
end;
end;

 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Гость






Цитата(volvo @ 16.06.2007 23:57) *

В Дельфях можно так сделать:
procedure TForm1.Button1Click(Sender: TObject);
var sl: tstringlist;
begin
sl := tstringlist.Create;
try
sl.LoadFromFile('txt.txt');
memo1.Text :=
Copy(sl.Text, Pos('(', sl.Text) + 1, Pos(')', sl.Text) - Pos('(', sl.Text) - 1);
finally
sl.Free;
end;
end;



Пасибо Работает...
а объясни мне пожалуйста(а то я не знаю) что это означает

procedure TForm1.Button1Click(Sender: TObject);
var sl: tstringlist;{ЭТО КАК Я ПОНИМАЮ ТОЖЕ САМОЕ ЧТО STRING НО ТОКА В НЕСКОЛЬКО СТРОЧКАХ...ТАК Я ПОНИМАЮ???}
begin
sl := tstringlist.Create;
try{А ВОТ ЧТО ЭТО ОЗНАЧАЕТ Я НЕЗНАЮ???НЕПОДСКАЖИТЕ???}
sl.LoadFromFile('txt.txt');
memo1.Text :=
Copy(sl.Text, Pos('(', sl.Text) + 1, Pos(')', sl.Text) - Pos('(', sl.Text) - 1);
finally {А ВОТ ЧТО ЭТО ОЗНАЧАЕТ Я НЕЗНАЮ???НЕПОДСКАЖИТЕ???}
sl.Free;{А ВОТ ЧТО ЭТО ОЗНАЧАЕТ Я НЕЗНАЮ???НЕПОДСКАЖИТЕ???}
end;
end;



Сообщение отредактировано: F@RTEM -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Добавил комментарии
procedure TForm1.Button1Click(Sender: TObject);
var sl: tstringlist; // это класс Дельфи, предназначенный для хранения _списка_ строк...
begin
sl := tstringlist.Create; // Создаем список строк

// в принципе можно обойтись и без try/finally, но я предпочитаю быть уверенным, что
// объект будет удален независимо от успешности его обработки
try

sl.LoadFromFile('txt.txt');
memo1.Text :=
Copy(sl.Text, Pos('(', sl.Text) + 1, Pos(')', sl.Text) - Pos('(', sl.Text) - 1);
finally
// поскольку это находится в Finally, то независимо от результата действий в секции Try
// строка Free выполнится всегда ...
sl.Free; // а это, собственно, означает освобождение списка строк. Фактически - удаление его

end;
end;



P.S. Тему надо бы двинуть в Delphi ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Гость






Цитата(volvo @ 18.06.2007 23:24) *

Добавил комментарии
procedure TForm1.Button1Click(Sender: TObject);
var sl: tstringlist; // это класс Дельфи, предназначенный для хранения _списка_ строк...
begin
sl := tstringlist.Create; // Создаем список строк

// в принципе можно обойтись и без try/finally, но я предпочитаю быть уверенным, что
// объект будет удален независимо от успешности его обработки
try

sl.LoadFromFile('txt.txt');
memo1.Text :=
Copy(sl.Text, Pos('(', sl.Text) + 1, Pos(')', sl.Text) - Pos('(', sl.Text) - 1);
finally
// поскольку это находится в Finally, то независимо от результата действий в секции Try
// строка Free выполнится всегда ...
sl.Free; // а это, собственно, означает освобождение списка строк. Фактически - удаление его

end;
end;



P.S. Тему надо бы двинуть в Delphi ...

ПАСИБО БОЛЬШОЕ!!!!!!



Сообщение отредактировано: F@RTEM -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гость






а ты мне не мог бы скинуть ссылку где это можно прочитать???
чтоб разобраться до конца...посмотреть примерыи может что нибудь новое узнаю!

try
-//-//-//-//-//-//
finally

 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Гость






Ну, вот тут посмотри: http://delphibasics.ru/Try.php
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 20.04.2024 0:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name