Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2008, 22:57   #1
yura-cat
Пользователь
 
Регистрация: 20.09.2008
Сообщений: 20
Радость Запись массива в txt

я конечно воспользуюсь поиском, но интересно, почему ЭТОТ код не работает? я считаю что он должен работать)
procedure unname;
var
f: textfile;
n: integer;
begin
AssignFIle(F,'D:\тест\file.txt');
Rewrite(f);
n:=1;
while (name_g[i,1]<>'') do begin
n:=n+1;
Writeln(f,name_g[n,1],';',name_g[n,2]);
CloseFile(f);
end;
yura-cat вне форума Ответить с цитированием
Старый 20.10.2008, 23:18   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
я считаю что он должен работать
А где у вас объявлен этот самый массив name_g ?
А где у вас идет присвоение значений элементам этого массива ?
А что это за переменная I у вас в строке "while (name_g[i,1]<>'') do begin" ?
mihali4 вне форума Ответить с цитированием
Старый 20.10.2008, 23:21   #3
yura-cat
Пользователь
 
Регистрация: 20.09.2008
Сообщений: 20
По умолчанию

var (глобальный)

Name_g : array[1..255,1..255] of string;
I: integer = 0;
yura-cat вне форума Ответить с цитированием
Старый 20.10.2008, 23:27   #4
yura-cat
Пользователь
 
Регистрация: 20.09.2008
Сообщений: 20
По умолчанию

он не то чтобы совсем не работает, он почему-то , записывает только первую строчку, а затем ошибка I\O
может в таком случае, вы, если вам не сложно приведете мне простой пример этой процедуры?

Последний раз редактировалось yura-cat; 20.10.2008 в 23:37.
yura-cat вне форума Ответить с цитированием
Старый 20.10.2008, 23:36   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от yura-cat Посмотреть сообщение
он не то чтобы совсем не работает, он почему-то , записывает только первую строчку, а затем ошибка I\O
Ну так вы посмотрите внимательно на этот кусок:
Код:
n:=1;
while (name_g[i,1]<>'') do begin
n:=n+1;
Writeln(f,name_g[n,1],';',name_g[n,2]);
CloseFile(f);
end;
- где у вас изменяется условие ? (I как было равно 1, так и осталось - бесконечный цикл)
- вы записываете ОДНУ строку и тут же закрываете файл... А на следующем шаге пытаетесь записать в этот закрытый файл - вот вам и I/O Error...
Подскажу - строка CloseFile(f); должна быть ВЫНЕСЕНА из цикла. Но... смотрите первое замечание насчет условия выхода из цикла.

Последний раз редактировалось mihali4; 20.10.2008 в 23:38.
mihali4 вне форума Ответить с цитированием
Старый 20.10.2008, 23:54   #6
yura-cat
Пользователь
 
Регистрация: 20.09.2008
Сообщений: 20
По умолчанию

большое, спасибо, я разобрался в своих ошибках и получил +100 опыта.
yura-cat вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись из файла txt или mdb в базу данных DerSky БД в Delphi 6 09.06.2008 12:50
запись с массива в массив тормозит? valgusk Общие вопросы Delphi 0 01.05.2008 17:45
Запись последовательности в txt NeiL Общие вопросы Delphi 1 14.04.2008 22:23
запись Массива в БД Chepa БД в Delphi 4 26.12.2006 18:58