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

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

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

> типированный файл
hellspawn
сообщение 21.12.2008 17:55
Сообщение #1





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

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


помогите плиз откомпилировать прогу! я торможу, а завтра сдавать...мне fpc выдает ошибки на немовпадение типов данных в процах blockread и blockwrite. по сути последняя переменная в скобках должна быть типа word, но у меня работа со строками, и я не знаю что делать... sad.gif

uses crt;

const
delimiters=[' ','.',',',';','!','?',':','*','#','$','(',')','[',']'];

type
TDirections=(ReadFile,WriteFile);
ArrString=array [1..10] of string;
ArrBuf=array [1..1024] of byte;

function OpenNonTypicalFile (buf: ArrBuf; var F: file; FileName: string; Direction: TDirections): boolean;
var Result: boolean;
begin
assign(F,FileName);
Result:=True;
case Direction of
ReadFile: Reset(F,sizeof(F));
WriteFile: ReWrite(F,sizeof(F));
end;
if IOResult<>0 then
begin
case Direction of
ReadFile: writeln('Failed to read file '+FileName);
WriteFile: writeln('Failed to write file '+FileName);
end;
Result:=False;
end;
OpenNonTypicalFile:=Result;
end;

function ReadNonTypicalFile (buf: ArrBuf; var F: file; d: string): string;
begin
while not eof(F) do
begin
BlockRead(F,buf,sizeof(d),d);
end;
ReadNonTypicalFile:=d;
end;

function FirstIndex (s: string; var i: byte): byte;
begin
while (s[i] in delimiters) do
inc(i);
FirstIndex:=i;
end;

function LastIndex (s: string; i: byte): byte;
begin
while not(s[i] in delimiters) do
inc(i);
LastIndex:=i-1;
end;

function GetWord (s: string; b,e: byte): string;
begin
GetWord:=copy(s,b,e-b+1);
end;

var
i, j, s, FI, LI, l, wordbeg, iel: byte;
line, el: string;
a: ArrString;
buf: ArrBuf;
F: file;

begin
clrscr;

if OpenNonTypicalFile(buf,F,'111.dat',ReadFile) then
line:=ReadNonTypicalFile(buf,F,el);


wordbeg:=1;
i:=1;
s:=0;
begin
l:=length(line);
while wordbeg<l+1 do
begin
FI:=FirstIndex(line,wordbeg);
LI:=LastIndex(line,FI);
writeln(GetWord(line,FI,LI));
a[i]:=GetWord(line,FI,LI);
inc(i);
s:=s+1;
wordbeg:=LI+1;
end;
end;


if OpenNonTypicalFile(buf,F,'112.dat',WriteFile) then
for i:=1 to s do
begin
el:=a[i];
iel:=i;
for j:=1 to s do
if (a[j]=el) and (not(j=iel)) then
a[j]:='';
end;


for i:=1 to s do
BlockWrite(F,buf,sizeof(a[i]),a[i]);

close(F);

end.

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

Сообщений в этой теме


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

 



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