IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

 
 Ответить  Открыть новую тему 
> Запись в файл
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 234
Пол: Мужской
Реальное имя: AHTOH

Репутация: -  1  +


Код
uses crt,dos;
var
t:text;
s:string;
begin
clrscr;
assign(t,'c:\lab.txt');
append(t);
write(t,s);
close(t);
readln;
end.

Почему не работает? unsure.gif
В чем моя ошибка.


--------------------
Хочу в репу !

Cмотри,а то ведь получишь!
Админ.

Не получит - его фиг догонишь!
Админ №2.

P.S Вы еще третьего админа притащите сюда :D
ваш аффтар :D
Звали? :D (админ № не помню какой)

ха больше нифига не напишете
афтар

Уверен? (Moderator)
А еще можно ? (супмодер)
Хватит его мучать ! Избили уж... (админ)
Не хватит. я тоже напишу (тоже Админ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






suriv
А перед началом работы файл "c:\lab.txt" уже существует? Если нет, то Append будет давать ошибку...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 234
Пол: Мужской
Реальное имя: AHTOH

Репутация: -  1  +


да. существует "c:\lab.txt"

ЗЫ то же самое и с чтением:
Код

uses crt,dos;
var
t:text;
s:string;
begin
clrscr;
assign(t,'c:\lab.txt');
reset(t);
read(t,s);
close(t);
readln;
end.


--------------------
Хочу в репу !

Cмотри,а то ведь получишь!
Админ.

Не получит - его фиг догонишь!
Админ №2.

P.S Вы еще третьего админа притащите сюда :D
ваш аффтар :D
Звали? :D (админ № не помню какой)

ха больше нифига не напишете
афтар

Уверен? (Moderator)
А еще можно ? (супмодер)
Хватит его мучать ! Избили уж... (админ)
Не хватит. я тоже напишу (тоже Админ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 234
Пол: Мужской
Реальное имя: AHTOH

Репутация: -  1  +


Ну! и че делать?


--------------------
Хочу в репу !

Cмотри,а то ведь получишь!
Админ.

Не получит - его фиг догонишь!
Админ №2.

P.S Вы еще третьего админа притащите сюда :D
ваш аффтар :D
Звали? :D (админ № не помню какой)

ха больше нифига не напишете
афтар

Уверен? (Moderator)
А еще можно ? (супмодер)
Хватит его мучать ! Избили уж... (админ)
Не хватит. я тоже напишу (тоже Админ)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


Проверь наличие у файла аттрибута "read-only" (при установленном r/o Append не работает). Если C:\ - том NTFS, то проверь права доступа к файлу. Код в обоих случаях рабочий - ошибка не в нем... если не считать того, что s в первом примере не инициализирована. В данном случае это не критично, т. к. BP 7.0 и FP очищают сегмент (секцию) данных. Впрочем, на этот факт не следует всерьёз полагаться - очистка производится, но не гарантируется.


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  -1  +


xds, очищается оно только в режиме Debug'а. А так переменные скидываются в неинициализируемый сегмент...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


N337
****

Группа: Пользователи
Сообщений: 737
Пол: Мужской

Репутация: -  26  +


В BP 7.0 код инициализации заполняет сегмент данных нулями всегда:
Код
mov    di,0052
push   ds
pop    es
mov    cx,82A0
sub    cx,di
shr    cx,1
xor    ax,ax
cld
rep stosw
ret


Можешь проверить (скомпилируй и запусти без IDE):
program Code;

{$D-}

var
a: array[0..32767] of Byte;
i: Integer;

begin
for i := 0 to 32767 do
if a[ i ] <> 0 then
begin
Writeln('a: uninitialized.');
Exit;
end;
Writeln('a: filled with zeros.');
end.


--------------------
The idiots are winning.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 29
Пол: Мужской

Репутация: -  -1  +


Как показывает практика: не всегда. Помнишь первое правило олимпиад: обнуление, обнуление и ещё раз обнуление.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 15.05.2024 19:35
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name