![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Научите... [D6]
Fog © (2002-11-05 20:00:00)... избавляться от "I/0 error 32"!
Я пытаюсь записать в файл:
AssignFile(f, "FileName");
Rewrite(f);
Write(f, ToChtoNado);
CloseFile(f);
Alex4444444444 (2002-11-06 19:40:00) [1]A Vy ne hotite dojti do strochki
rewrite(f,1);
ostanovit"sya ( perednej), i poprobovat", skazhem, udalit" etot file Explorer"om (predvaritel"no, konechno, sdelav copiyu).
trotski (2002-11-06 19:05:00) [2]Попробуй так:
var f:file;
begin
assignfile(f,"...");
rewrite(f,1);
...
write(f,Chtoto,SizeOf(ChtoTo));
closefile(f);
Fog (2002-11-06 18:03:00) [3]
> Write(f, ToChtoNado); - не понятно что вообще автор пытается
Как что? Это переменная ChtotoEsheв которойSmth[i, j].smInt := random(3);
Иля я и сдесь чтот-то напортачил?
Alex4444444444 (2002-11-06 17:11:00) [4]Soglasen. Eto moglo by privesti c access violation, no, k schast"yu, ne privodit, t.k. vyletaet na I/O 32 :)
Skier (2002-11-06 17:04:00) [5]>Alex4444444444
Ни при чём...может быть. Но мне кажется создание объектов не
помешает ? :)
И ещё как тебе это
Write(f, ToChtoNado); - не понятно что вообще автор пытается
писать в файл. Ждём-с...
Alex4444444444 (2002-11-06 16:59:00) [6]Da, no focus v tom, chto I/O 32---eto sharing violation, t.e., skoree vsego file uzhe kem-to otkryt i ToChtoNado.Smth[i, j] := TSomething.Create zdes" ni pri chem...
Alex4444444444 (2002-11-06 16:57:00) [7]Nu, muzhiki, obaldennye u vas identificatory...
Skier (2002-11-06 16:48:00) [8]>LongIsland
Слона не заметил :))
>Fog
TSomething = class
smInt: integer;
end;
LongIsland (2002-11-06 16:45:00) [9]
> ToChtoNado.Smth[i, j] := TSomething.Create
И получим удовольствие видеть надпись Undeclared identifier: "Create":-)
Skier (2002-11-06 16:38:00) [10]>Fog
Примерно так (хотя способ извратный) :
TSomething = object
smInt: integer;
end;
ChotoEshe = record
Smth: array[0..10, 0..10] of TSomething;
end;
var
ToChtoNado:ChtotoEshe;
var
f:File of integer;
i,j:integer;
begin
for i := 0 to 10 do
begin
for j := 0 to 10 do
begin
ToChtoNado.Smth[i, j] := TSomething.Create;
ToChtoNado.Smth[i, j].smInt := random(3);
end;
end;
try
AssignFile(f, FileName); //FileName - существующий файл
Rewrite(f);
for i := 0 to 10 do
begin
for j := 0 to 10 do
begin
Write(f, ToChtoNado.Smth[i, j].smInt);
end;
end;
finally
CloseFile(f);
for i := 0 to 10 do
begin
for j := 0 to 10 do
begin
ToChtoNado.Smth[i, j].Free;
ToChtoNado.Smth[i, j] := nil;
end;
end;
end; //try
.
.
.
end;
Fog (2002-11-06 16:30:00) [11]
> Skier
Да? Где же его создать если его использует толко ToChtoNado:ChtotoEshe...
Skier (2002-11-06 16:13:00) [12]>Fog
А вот я полагаю что НЕТ.
Fog (2002-11-06 16:10:00) [13]
> Skier © (06.11.02 16:05)
Пологаю они создаются вместе сToChtoNado:ChtotoEshe
Fog (2002-11-06 16:07:00) [14]
> Ru © (06.11.02 15:44)
Пишу f:TextFile;
а компилятор отвечает
[Error] create.pas(54): Illegal type in Write/Writeln statement
Пишу f:File of integer
а компилятор
[Error] create.pas(54): Incompatible types: "Integer"and "ChtotoEse"
А когда пишу
{$I-}Получается пустой файл.
Rewrite(f);
{$I+}
Skier (2002-11-06 16:05:00) [15]>Fog
А объекты TSomething создаются ?
Ru (2002-11-06 15:44:00) [16]>Shadow © (05.11.02 20:27)
rewrite его создаст если файл не существует
>Fog
попробуй создать текстовый или нетипизированый файл. Целочисленные данные неплохо пишутся в текстовый файл и также читаются, кажись даже без преобразования.
Fog (2002-11-06 15:23:00) [17]
> Как объявлены F и ToChtoNado?
TSomething = object
smInt: integer;
end;
ChotoEshe = record
Smth: array[0..10, 0..10] of TSomething;
end;
var
ToChtoNado:ChtotoEshe;
var
f:File of ChotoEshe;
i,j:integer;
begin
for i := 0 to 10 do
begin
for j := 0 to 10 do
begin
ToChtoNado.Smth[i, j].smInt := random(3);
end;
end;
AssignFile(f, FileName); //FileName - существующий файл
Rewrite(f);
Write(f, ToChtoNado);
.
.
.
end;
KoluChi (2002-11-06 10:28:00) [18]
AssignFile(F, FileName);
{$I-}
Reset(F);
{$I+}
if (IOResult = 0) then
try
Writeln(F, ...)
...
finally
CloseFile(F);
end
else
ShowMessage("not access to file");
Alex4444444444 (2002-11-05 20:45:00) [19]32L ERROR_SHARING_VIOLATION
Anatoly Podgoretsky (2002-11-05 20:36:00) [20]Наверно файл еще где то открыт