![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() После запуска программы есть окно с полем Memo и 2-е кнопки. Изначально текстовые данные берутся из файла №1 и помещаются в поле Memo, 1 кнопка читает по строкам содержимое файла №1, а 2-я соответственно из файла №2 и замещает предыдущие данные в поле Memo новыми. Чтобы на лету можно было сохранять изменённые данные в Memo я добавил функцию сохранения в файлы по каждому нажатию на кнопки.
Но проблема в том, что первом же нажатии выскакивает ошибка "I/O Error 105" в коде строки: Rewrite(f); Вот небольшой фрагмент текста кода: Код:
unit MySecondProject; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ComCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var f: TextFile; fName: String[80] buf: String[80]; i: Integer; zzz: String[20]; begin AssignFile(f, zzz); // - Почему переменная zzz не запомнила значения Rewrite(f); // Вот здесь выскакивает ошибка for i:=0 to Memo1.Lines.Count-1 do writeln(f, Memo1.Lines[i]); CloseFile(f); AssignFile(f, 'test\1.txt'); {$I-} Reset(f); {$I+} if IOResult <> 0 then begin MessageDlg('Ошибка доступа к файлу ' + fName, mtError,[mbOk],0); exit; end; Memo1.Text:= ''; while not EOF(f) do begin readln(f, buf); Memo1.Lines.Add(buf); end; Memo1.Lines.Add(zzz); CloseFile(f); // закрыть файл zzz := 'test\1.txt'; end; procedure TForm1.Button2Click(Sender: TObject); var f: TextFile; fName: String[80] buf: String[80]; i: Integer; zzz: String[20]; begin AssignFile(f, zzz); Rewrite(f); for i:=0 to Memo1.Lines.Count-1 do writeln(f, Memo1.Lines[i]); CloseFile(f); AssignFile(f, 'test\1.txt'); {$I-} Reset(f); {$I+} if IOResult <> 0 then begin MessageDlg('Ошибка доступа к файлу ' + fName, mtError,[mbOk],0); exit; end; Memo1.Text:= ''; while not EOF(f) do begin readln(f, buf); Memo1.Lines.Add(buf); end; Memo1.Lines.Add(zzz); CloseFile(f); // закрыть файл zzz := 'test\2.txt'; end; procedure TForm1.FormCreate(Sender: TObject); var f: TextFile; fName: String[80]; buf: String[80]; zzz: String[20]; begin fName:= 'test\1.txt'; AssignFile(f, fName); {$I-} Reset(f); {$I+} if IOResult <> 0 then begin MessageDlg('Ошибка доступа к файлу ' + fName, mtError,[mbOk],0); exit; end; // чтение из файла memo1.Text:= ''; while not EOF(f) do begin readln(f, buf); Memo1.Lines.Add(buf); end; CloseFile(f); zzz := 'test\1.txt'; end; end. Помогите разобраться новичку. Последний раз редактировалось Admin, 23.12.2009 в 22:21. |