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

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

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

> типизированные файлы, замена буквы на заглавную
natka
сообщение 1.02.2006 6:19
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Женский

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


Есть такая задачка:
Создать типизированный файл , компоненты отдельные слова.
Отредактировать файл - если слово начинается с буква "к", заменить ее на букву "К".
я тут что - то написала, но замены не происходит, может кто-нибудь найдет ошибку.

const n=20;
var
F,F1:file of char;
i:integer;
c:char;
BEGIN
assign(F,'C:/z25.dat');rewrite(F);
for i:=1 to n do
begin
read©; write(F,c);
end;
close(F); reset(F);
assign(F1,'C:/z25_1.dat');rewrite(F1);
for i:=1 to n-1 do
begin
read(F,c);
if c='' then begin seek(F,i+1); write(F,c);
if c='k' then c:='K'; end;
write(F1,c); seek(F,i);
end;
close(F1); reset(F1);
for i:=1 to n do
begin
read(F1,c); write ( c ) ;
end;
END.



теги CODE - не html а bb коды, они пишутся в квадратных скобках.
Altair


Сообщение отредактировано: volvo - 8.11.2006 13:06
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
Ozzя
сообщение 1.02.2006 9:23
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

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


Цитата
Создать типизированный файл , компоненты отдельные слова.

У тебя компоненты не отдельные слова, а отдельные символы.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
natka
сообщение 1.02.2006 15:24
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Женский

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


Если будут слова, то как проверить какая первая буква слова?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 1.02.2006 15:28
Сообщение #4


Гость






type
T = string[10]; { можно - больше }

var
f: file of T;
s: T;
...
read(f, s);
if s[1] = 'к' then ...
...
 К началу страницы 
+ Ответить 
natka
сообщение 1.02.2006 15:43
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Женский

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



const n=5;
var
F,F1:file of string[20];
i:integer;
c:string[20];
BEGIN
assign(F,'C:/z25.dat');rewrite(F);
for i:=1 to n do
begin
read©; write(F,c);
end;
close(F); reset(F);
assign(F1,'C:/z25_1.dat');rewrite(F1);
for i:=1 to n-1 do
begin
read(F,c);
if c[1]'k' then
if c='k' then c:='K';
write(F1,c);
end;
close(F1); reset(F1);
for i:=1 to n do
begin
read(F1,c); write©;
end;
END.


Только так я совсем запуталась, дайте идею.
Вдогонку: как сделать так чтобы ввод в файл прекращался по нажатию клавиши Enter, какой у нее код?

Я в принципе так и сделала - переделала свое - там ошибки, только до проверки не доходит, на этапе чтения данных из файла выдается - Типовая ошибка.

Я исправила:
Код

const n=5;
var
F,F1:file of string[20];
i:integer;
c:string[20];
BEGIN
assign(F,'C:/z25.dat');rewrite(F);
for i:=1 to n do
begin
     read(c);     write(F,c);
end;
close(F);reset(F);
assign(F1,'C:/z25_1.dat');rewrite(F1);
for i:=1 to n-1 do
begin
     read(F,c);
     if c='k' then c:='K';
     end;
     write(F1,c);
end;
end.

только все равно не работает, на этапе чтения из файла выдается ошибка - Типовая ошибка.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 1.02.2006 15:44
Сообщение #6


Гость






natka, смотри, есть несколько недочетов в программе:
1) ты привязалась к конкретному числу компонентов. Для файла это не совсем верно - с файлом надо работать, пока он не закончился.
2)
Цитата
на этапе чтения данных из файла выдается - Типовая ошибка.
- потому что тип string[20]
var
F, F1: file of string[20]; { <-- Здесь... }
i: integer;
c: string[20]; { <-- ... и здесь }
для компилятора не имеет ничего общего!!! Я не зря выделил это в отдельное описание типа, это очень распространенная ошибка, и избежать ее можно ЛИБО используя встроенный тип string (без объявления длинны), ЛИБО определяя свой тип, и работая только с ним...

Вот рабочий вариант программы (только исправь пути к файлам...)
type
T = string[20];

var
f, f1: file of T;
s: T;

BEGIN
assign(F,'z25.dat'); rewrite(F);
repeat
readln(s);
if s <> '' then write(F, s);
until s = '';

reset(F);
assign(F1,'z25_1.dat'); rewrite(F1);
while not eof(f) do begin
read(F, s);
if s[1] = 'k' then s[1] := 'K';
write(F1, s);
end;
reset(F1);
while not eof(f1) do begin
read(F1, s); write(s, ' ');
end;
close(f); close(f1);
END.
 К началу страницы 
+ Ответить 
natka
сообщение 1.02.2006 15:53
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Женский

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


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

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

 



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