| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > файл |
| Автор: Fir 10.3.2005, 18:19 |
| При повторном объявлении и открытия для дозаписи или перезаписи выводит error 32 , хотя, если открывать для чтения, то всё нормально. Чё такое? (файл в предидущих процедурах был закрыт) |
| Автор: Alex 10.3.2005, 18:26 |
| Ошибка в 17 строке. |
| Автор: The MASTER 10.3.2005, 18:44 |
| Alex Ты что телепат? |
| Автор: Alex 10.3.2005, 18:48 |
| The MASTER, нет. Просто товарищь Fir думает, что тут форум телепатов. |
| Автор: Fedor 10.3.2005, 18:50 |
| Alex и прикинь, угадаешь |
| Автор: Poseidon 11.3.2005, 03:46 |
| Я думаю Fir еще не понял, почему ему не отвечают! Fir, приведи пример кода! По-моему ошибка пустяковая, так сказать "описка где-нибудь". Так что если будет код, то ты сразу же получишь ответ в чем дело. PS. хотя 17 строку можешь проверить. А вдруг действительно Alex угадал! |
| Автор: Bes 11.3.2005, 07:27 |
| 1) Не закрыл файл. 2) Не той командой открывает. |
| Автор: p0s0l 11.3.2005, 12:04 | ||
Еще один вариант: файл открыт еще какой-нибудь прогой...
|
| Автор: Fir 11.3.2005, 19:43 | ||
ВОТ КОД!!! ТЕЛЕПАт - это оскарбление, я инопланетянин. Можно и помоч, мозов не хватает!!
|
| Автор: z-END 11.3.2005, 19:49 | ||
| ошибок пруд-пруди и конструкция устаревшая лучше использовать TFileStream делай так:
|
| Автор: Fir 11.3.2005, 20:28 |
| За код спасибо, но канает!!!!!!!!!!!!!!!!! Ошибка времени на строчке if FileExists (FName) then Append (F) else Rewrite (F); или как было Append (F) {Rewrite (F)} Причём иногда работает, добавляет в файл, а иногда нет!!!! Добавлено @ 20:29 Пардон за небольшую тупость. Инет ограничен очень сильно |
| Автор: Poseidon 12.3.2005, 04:48 | ||||||
А вообще, на сколько я вижу, ты сохраняешь весь текст в Мемо в файл. Так почему бы не воспользоваться Memo1.Lines.SaveToFile? Я конечно вижу, что если файл есть, то нужно его не перезаписать, а добавить. Но ведь и это решаемо без прямой записи в файл. p0s0l
|
| Автор: z-END 12.3.2005, 09:54 | ||
Fir давай сделаем так:
ЗЫ: ты скажи есть ли еще какие нибудь процедуры или процессы которые работают с данным файлом?! ЗЫЫ: этот код случайно не в таймере висит?! |
| Автор: Poseidon 12.3.2005, 20:14 | ||
z-END, интересный способ. Это как раз то, что я предлагал выше, использовать SaveToFile. Конечно, код не совсем закончен, т.к. если
|
| Автор: Vit 13.3.2005, 02:42 | ||
Примечания к коду 1) Файл надо проверять на наличие а не дожидаться ошибок 2) Применение FilePos(f); для текстовых файлов бессмыслено 3) writeln(f, #13); - вы реально добавите #13#10#13 4) for i:=0 to Memo3.Lines.Count do - тут вас выбьет по range error или запортите память и выбьет где-то ещё, очень нехорошая ошибка, постарайтесь её никогда не делать, её крайне трудно потом отлавливать, посмотрите на мой код |
| Автор: SoWa 13.3.2005, 17:09 | ||
Может не надо TextFile а надо просто Text ??? Я его всю свою олимпиадную жизнь использую, и работает... |
| Автор: Fir 13.3.2005, 18:55 | ||
После следующей функции файл остаётся открыт или ещё чё-то!!
|
| Автор: [EViL] 13.3.2005, 19:50 |
| Тебе же умные люди подсказали юзать TFileStream или TStringList. Вся эта чушь с textfile и text - фигня, каменный век. Они оставлены ТОЛЬКО ДЛЯ СОВМЕСТИМОСТИ с Borland Pascal. |
| Автор: Vit 14.3.2005, 16:54 | ||||||
Добавлено @ 16:55
нет, всё правильно...
Тут мог бы поспорить... Но не буду офтопить... В любом случае эти функции работают совершенно нормально. |
| Автор: Fir 15.3.2005, 18:58 |
| Спосибо! Всё ок! |