![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибкка при записи из одного файла в другой, используя тип. файлы
abba © (2006-11-07 13:52:00)var
f1,f2,f3:file of integer;
t1,t2,t3:integer;
i,j,x,y:integer;
begin
AssignFile(f1,'1.txt');
Reset(f1);
AssignFile(f2,'2.txt');
Rewrite(f2);
for i:=FileSize(f1)-1 downto 1 do
for j:=0 to i-1 do
begin
seek(f1,j);
read(f1,x,y);
seek(f2,j);
write(f2,x,y);
end;
CloseFile(f1);
CloseFile(f2);
end;
У меня переписывает из файла f1 в f2 не всё. Подскажите, пожалуйста, в чём ошибка?
Спасибо.
Anatoly Podgoretsky (2006-11-07 14:51:00) [1]> Neket (07.11.2006 14:48:26) [26]
> Да но в данном случае налицо обычный текстовый файл...
Объявлен как типизированый.
Neket (2006-11-07 14:48:00) [2]
> Еще более странный способ, для двоичных файлов
Да но в данном случае налицо обычный текстовый файл...
Anatoly Podgoretsky (2006-11-07 14:46:00) [3]> abba (07.11.2006 14:15:13) [13]
> У меня в справке нет CopyFile(Ex).
Переинсталируй Дельфи и больше не отказывайся от генофонда.
Anatoly Podgoretsky (2006-11-07 14:45:00) [4]> abba (07.11.2006 14:09:08) [8]
Это не file of Integer
Anatoly Podgoretsky (2006-11-07 14:45:00) [5]> Neket (07.11.2006 14:08:07) [7]
> Самый простой и верный способ
Еще более странный способ, для двоичных файлов.
Anatoly Podgoretsky (2006-11-07 14:44:00) [6]> abba (07.11.2006 14:07:06) [6]
> Но появляется ошибка?
Партизан?
Anatoly Podgoretsky (2006-11-07 14:43:00) [7]> abba (07.11.2006 14:03:04) [4]
> Но мне нужен типизированный.
5. Зачем?
Anatoly Podgoretsky (2006-11-07 14:43:00) [8]> Desdechado (07.11.2006 14:02:03) [3]
> 1. зачем
> ...
> 4. зачем
Тут много зачем, тут правильный диагноз, переписать все нафиг, лучше заменить одной командой CopyFile
Anatoly Podgoretsky (2006-11-07 14:41:00) [9]> abba (07.11.2006 13:52:00) [0]
Типа Файлы не видать, зато есть типизированые файлы.
FileSize(f1)-1
Конечно не все, минус одна запись
Neket (2006-11-07 14:21:00) [10]Но при этом он у вас *.txt
Объявите файл как file of text, и все.
abba (2006-11-07 14:20:00) [11]А всё понял-понял-понял. Всё получилось. Спасибо за помощь и извините за мою глупость.
Neket (2006-11-07 14:19:00) [12]Да. Да. Да. Согласен с Рамилем. Какой тип файла? И что в нем содержится?
И вообще какие цели вы желаете достич?
abba (2006-11-07 14:18:00) [13]У меня в файле целые числа.
Рамиль (2006-11-07 14:17:00) [14]
> abba (07.11.06 14:15) [13]
Ответь на
Рамиль © (07.11.06 14:15) [12]
> abba (07.11.06 14:09) [8]
Таки я тебя не понял. У тебя в файле строки что ли? Тогда зачем integer читаешь?
abba (2006-11-07 14:15:00) [15]У меня в справке нет CopyFile(Ex).
var
f1,f2:file of integer;
t1
begin
AssignFile(f1,'1.txt');
Reset(f1);
AssignFile(f2,'2.txt');
Rewrite(f2);
while not eof(f1) do
begin
readln(f1,t1);
writeln(f2,t1);
end;
CloseFile(f1);
CloseFile(f2);
end;
Всё равно ошибка?
Рамиль (2006-11-07 14:15:00) [16]
> abba (07.11.06 14:09) [8]
Таки я тебя не понял. У тебя в файле строки что ли? Тогда зачем integer читаешь?
> Neket (07.11.06 14:08) [7]
> While Eof(f1)<>true do
While not Eof(f1) do
Desdechado (2006-11-07 14:11:00) [17]> А как записывается CopyFile(Ex)?
F1 нажать религия не позволяет?
> А почему из файла с данными
А потому, что там тип файла другой.
Neket (2006-11-07 14:11:00) [18]Ты точно указал WriteLN и ReadLN
Рамиль (2006-11-07 14:10:00) [19]The CopyFile function copies an existing file to a new file.
BOOL CopyFile(
LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);
Parameters
lpExistingFileName
Points to a null-terminated string that specifies the name of an existing file.
lpNewFileName
Points to a null-terminated string that specifies the name of the new file.
bFailIfExists
Specifies how this operation is to proceed if a file of the same name as that specified by lpNewFileName already exists. If this parameter is TRUE and the new file already exists, the function fails. If this parameter is FALSE and the new file already exists, the function overwrites the existing file and succeeds.
abba (2006-11-07 14:09:00) [20]А почему из файла с данными:
1
2
3
4
5
6
7
8
9
10
Он переписывает способом Neket
1
2
3
4
5
6
7
8
9
1