|
Вопрос # 3 139/ вопрос открыт / |
|
Здравствуйте, эксперты!
Помогите ,пожалуйста,ну ни как не пойму - совсем запутался.
Записываю данные в файл.Затем достаю из файла и редактирую в листбоксе,тоесть удаляю некоторые строки.Затем ,чтобы изменить содержимое файла,пытаюсь перезаписать файл новым содержимым листбокса и ничего не получается.В гугле не могу найти,есть примерно такое же но с мемо.Я вроде бы делаю по аналогии и ни чего.Спасите,помогите!
Приложение: Переключить в обычный режим- unit Unit1;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
- Dialogs, Menus, StdCtrls, Buttons;
-
- type
- TForm1 = class(TForm)
- SpeedButton1: TSpeedButton;
- SpeedButton2: TSpeedButton;
- SpeedButton3: TSpeedButton;
- ListBox1: TListBox;
- Edit1: TEdit;
- PopupMenu1: TPopupMenu;
- N1: TMenuItem;
- procedure SpeedButton1Click(Sender: TObject);
- procedure SpeedButton2Click(Sender: TObject);
- procedure SpeedButton3Click(Sender: TObject);
- procedure N1Click(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.dfm}
- var
- F: TextFile;
- S: String;
- i : integer;
- b : string;
- x : integer;
- procedure TForm1.SpeedButton1Click(Sender: TObject);
- begin
- AssignFile(F,'v.txt');
- try
- Append(F);
- except
- on e: EInOutError do
- Rewrite(F);
- end;
- if Length(Edit1.Text) = 0
- then ShowMessage('Ioeaea aaiaa aaiiuo.' + #13 +
- ' Iiea aie?ii auou caiieiaii ')
- else
- begin
- Writeln(F,Edit1.Text);
- CloseFile(F);
- end;
- end;
-
- procedure TForm1.SpeedButton2Click(Sender: TObject);
- begin
- ListBox1.Clear;
- AssignFile(F,'v.txt');
- Reset(F);
- while not EOF(F) do
- begin
- ReadLn(F,S);
- ListBox1.Items.Add(S);
- end;
- CloseFile(F);
- end;
-
- procedure TForm1.SpeedButton3Click(Sender: TObject);
- begin
- AssignFile(F,'v.txt');
- Rewrite(F);
- for i := 0 to ListBox1.Items.Count do
- writeln(F,ListBox1.Items[ItemIndex] );
- CloseFile(F);
- end;
-
- procedure TForm1.N1Click(Sender: TObject);
- begin
- ListBox1.DeleteSelected;
- end;
-
- end.
 |
Вопрос задал: igoriy (статус: Посетитель)
Вопрос отправлен: 30 августа 2009, 08:13
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Жуть какая! Страшный сон программиста...
procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
ListBox1.Clear;
AssignFile(F,'v.txt');
Reset(F);
while not EOF(F) do
begin
ReadLn(F,S);
ListBox1.Items.Add(S);
end;
CloseFile(F);
{ А может написать вот так и не заморачиваться?
try
ListBox1.Items.LoadFromFile('v.txt');
except
Application.MessageBox(PChar('Не могу загрузить файл.'), PChar('Ошибка'), mb_Ok + mb_IconError);
end; }
end;
procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
AssignFile(F,'v.txt');
Rewrite(F);
for i := 0 to ListBox1.Items.Count do // <--- Вот распространённая АШЫПКА (-1 добавь)
writeln(F,ListBox1.Items[ItemIndex] ); // <--- Зачем ItemIndex, а не i???
CloseFile(F);
{ А может написать вот так и не заморачиваться?
try
ListBox1.Items.SaveToFile('v.txt');
except
Application.MessageBox(PChar('Не могу сохранить файл.'), PChar('Ошибка'), mb_Ok + mb_IconError);
end; }
end;
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 30 августа 2009, 09:46
Оценка за ответ: 5
Комментарий к оценке: Спасибо за ответ.Ну и любишь ты подкалывать детсадовцев програмирования.Конечно у тебя все проще и лучше.Но в учебниках блин все по другому и так запутано,наверно от особой умности авторов.Кстати насчет пивного вопроса-в личке
|
Мини-форум вопроса
Всего сообщений: 1; последнее сообщение — 30 августа 2009, 09:57; участников в обсуждении: 1.
|
min@y™ (статус: Доктор наук), 30 августа 2009, 09:57 [#1]:
Личку прочитал и ответил. Жду пива.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
30 августа 2009, 13:43: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с компонентами и библиотеками модератором Ерёмин А.А.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|