Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизСохранить в файл(Pascal) Найти похожие ветки
← →
Серёга (2005-09-11 17:06) [0]вот есть массив A[1..100] нужно сохранить его в файл?
(B Pascal"e)
← →
begin...end © (2005-09-11 17:12) [1]var
F: file;
A: array [1..100] of TMyType;
begin
Assign(F, "C:\MyFile.ext");
Rewrite(F, 1);
BlockWrite(F, A, sizeof(A))
end.
← →
begin...end © (2005-09-11 17:19) [2]И потом -- Close(F).
← →
Серёга (2005-09-11 17:42) [3]спасибо.
← →
Серёга (2005-09-11 17:47) [4]маленькая проблема,у меня в файле в кторый я всё это сохранил(myFile.txt) написана какая-то фигня..набор символов..
← →
vrem (2005-09-11 17:48) [5]Серёга, а что ты там ожидал?
← →
Серёга (2005-09-11 17:49) [6]может это быть,потому что у меня массив А типа single??
← →
Серёга (2005-09-11 17:53) [7]ну вообщем у меня массив с числами,и хотел бы его сохранить в файл и исходном состоянии,тоесть массив : 1,2,3,4 и т.д. и в текстовом айле было сохранено как : 1,2,3,4,наверно сначала надо массив записать в текстовую строку,а потом сохранить уже в файл?
← →
vrem (2005-09-11 17:54) [8]суть [1] - из полученного файла можно создать записанный массив опять.
Пиши в текстовом виде, если хочешь, например, распечатывать .
← →
Серёга (2005-09-11 17:58) [9]а можно его сразу сохранить в текстовом виде?
← →
vrem (2005-09-11 18:01) [10]var
f: textfile; i:integer;
A: array [1..100] of single;
begin
Assignfile(F, "C:\MyFile.txt"); Rewrite(F);
for i:=1 to 100 do
Writeln(F, A[i]);
closefile(f);
если дробные не используются, то лучше целый тип использовать
← →
Серёга (2005-09-11 18:05) [11]2vrem
дробные используются.
и ещё ругаеться что нет типа textfile при объявлении переменной F,там в uses может надо что нибудь написать?
← →
vrem (2005-09-11 18:24) [12]ладно, я про дельфи написал, textfile в модуле system
← →
Defunct © (2005-09-12 02:15) [13]Серёга (11.09.05 18:05) [11]
В Паскале нет TextFile, вместо него исп-ся тип Text.const FileName = "myfile.txt";
function NoError:boolean;
begin
if IOResult <> 0 then
WriteLn("Файловая ощибка: ", IOResult);
NoError := IOResult = 0;
end;
var
F : Text;
i : integer;
A : array [1..100] of single;
begin
{$i-}
Assign( F, FileName);
ReWrite( F );
if NoError then
begin
for i:=1 to 100 do
begin
WriteLn(F, A[i]:0:5);
if not NoError then break;
end;
Close( F );
end;
{$i+}
end.
← →
Германн © (2005-09-12 02:28) [14]2 Defunct © (12.09.05 02:15) [13]
Вообще-то IOResult - "одноразовая" функция в Pascale (по крайней мере в TP, который я знал когдп-то).
Посему конструкция типа:begin
не пройдет из-за того, что IOResult "сбросится" при первом его вызове и NoError - всегда будет "True"!
if IOResult <> 0 then
WriteLn("Файловая ощибка: ", IOResult);
NoError := IOResult = 0;
end;
Используй else и прибудет тебе счастье!
← →
Германн © (2005-09-12 02:45) [15]Да, кстати! Второй вызов функции "NoError" в Pascale, имхо, вообще не оправдан! В "однозадачной" среде ДОС, вообще не могут возникнуть такие проблемы.
← →
Джо © (2005-09-12 03:20) [16]
> [15] Германн © (12.09.05 02:45)
Забыли о резидентных обработчиках прерываний. Чем черт не шутит, всяко может случится :)
← →
Defunct © (2005-09-12 03:46) [17]> Германн © (12.09.05 02:28) [14]
> Вообще-то IOResult - "одноразовая" функция в Pascale (по крайней мере в TP, который я знал когдп-то).
Писал по памяти, колебался на этой функции. Спасибо, что напомнил. Тогда переделываем ее так:function NoError:boolean;
var
IORslt : integer;
begin
IORslt := IOResult;
if IORslt <> 0 then
WriteLn("Файловая ощибка: ", IORslt);
NoError := IORslt = 0;
end;
← →
Defunct © (2005-09-12 03:48) [18]Германн © (12.09.05 02:45) [15]
Могут еще как, к примеру:
- DISK FULL
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.039 c