Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Научите... [D6]


Страницы:   1 2

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); - не понятно что вообще автор пытается

Как что? Это переменная C htotoEsheв которой 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]

Наверно файл еще где то открыт


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо