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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Работа с файлами
сообщение
Сообщение #1


Пионер
**

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

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


Помогите решить.

Нужно написать прогу, которая считывает из заданного текстового файла слова и записывает в новый текстовый файл только те из них, которые начинаются с указанной буквы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Ну, и КАК это называется? Ведь практически эта же задача решена как пример работы с файлами в
FAQ: Файлы
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


Как связать файлы я и сам знаю, а вот серидину что-то ни как ...... .

Код

uses crt;
var
n,i:integer;
f,f1:text;
a,b:string;
begin clrscr;
assign (f,'c:\1.txt');
reset(f);
assign (f1,'c:\2.txt');
rewrite(f1);
read(f,a);

.........

write(f1,b);
readln;
close(f);
close(f1);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

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

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


uses crt;
const st=' ,.:?!';
var f1,f2:text; i:integer; ch:char; path1,path2,temp,word:string;
begin
clrscr;
writeln('Enter letter');
readln(ch);
writeln('Enter path to the source file');
readln(path1);
writeln('Enter path to the new file');
readln(path2);
assign(f1,path1);
reset(f1);
assign(f2,path2);
rewrite(f2);
temp:='';
while not(eof(f1)) do
begin
readln(f1,temp);
for i:=1 to length(temp) do
if pos(temp[i],st)=0 then
word:=word+temp[i]
else
begin
if word[1]=ch then
begin
write(f2,word+' ');
write(word+' ');
end;
word:='';
end;
end;
close(f1);
close(f2);
readln;
end.


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата(@^WARlock^@ @ 9.08.2006 2:37)
Как связать файлы я и сам знаю, а вот серидину что-то ни как ...... .
А ссылку на "середину" я тебе и привел... Учись читать посты ДО КОНЦА и находить то, что там написано.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Пионер
**

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

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


Программа работает вот в таком виде:

Код
uses crt;
var
f:text;
a,n:string;
k,i:integer;
begin clrscr;
writeln('Vvedite stroku: ');
readln(n);
write('Vvedite bukvu: ');
readln(a);
n:=n+' ';
while length(n)>0 do
begin
i:=pos(' ',n);
if n[1]=a then
k:=k+1;
delete(n,1,i);
end;
writeln;
writeln('iscomih slov: ',k);
readln;
end.



А вот в преобразованном виде ниже, для моего случая. Она пишет, что 'iscomih slov: 0'

Код
uses crt;
var
f1,f2:text;
a,n:string;
c:char;
k,i:integer;
begin clrscr;
write('Vvedite bukvu: ');
readln(a);
assign (f1,'c:\1.txt');
reset(f1);
assign (f2,'c:\2.txt');
rewrite(f2);
read(f1,a);
n:=n+' ';
while length(n)>0 do
begin
i:=pos(' ',n);
if n[1]=a then
k:=k+1;
delete(n,1,i);
write(f2,'Iskomix slov: ',k);
end;
close(f1);
close(f2);
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


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

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

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


Цитата
Нужно написать прогу, которая считывает из заданного текстового файла слова и записывает в новый текстовый файл только те из них, которые начинаются с указанной буквы.


Чувствуется это надогло

Если в исходном файле на одной строке одно слово, то вот :

function CopyOnValue(var _in, _out : Text; value : char) : integer;
var
s : string;
count : integer;
begin
count := 0;
while (not(EOF(_in))) do begin
readln(_in, s);
if s[1] = value then begin
writeln(_out, s);
inc(count);
end;
end;
CopyOnValue := count;
end;


_in и _out должны быть открыты для чтения и записи сооветственно.


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


Новичок
*

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

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


У меня похожая задача:"Нужно ввести данные в файл и если в строке есть цифры, то удвоить их".
У меня получилось сделать, только вот одна проблема: нужно, что бы цифра удваивалась подряд(например: была
строка "фыв1ф" - стала"фыв11ф"), а у меня получается, что цифра добавляется в конец строки...
Подскажите как добиться нужного результата:
Код
uses wincrt;
var a,b : text;
    s,s1 : string;
    i : integer;
begin
assign(a,'c:\a.txt');
rewrite(a);
readln(s);
write(a,s);
close(a);
assign(b,'c:\b.txt');
reset(a);
rewrite(b);
while not eof(a) do
  begin
    read(a,s);
   for i:=1 to length(s) do
    begin
     if s[i]='1' then
    s1:=s+s[i]+s1;

    end;
  end;
   write(b,s1);
  close(a);
  close(b);

end.


--------------------
Мы стремимся к знаниям... вы называете нас преступниками. Мы существуем без цвета кожи, без национальности и религиозных предубеждений... вы называете нас преступниками. Вы производите атомные бомбы, разжигаете войны, убиваете, обворовываете и врете нам, пытаясь убедить в своей правоте... а мы все также остаемся преступниками.
© Mentor
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата(Koma @ 18.09.2006 8:48)
У меня похожая задача:
Думаешь, ответ будет другим? Ответ тоже похож:
Цитата(Правила Раздела)
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!


Уже решали:
Строки: Удвоение букв в словах
 К началу страницы 
+ Ответить 

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

 




- Текстовая версия 18.11.2017 7:57
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"