|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.05.2007, 20:54 | #1 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
справочник
Я тут решил написать простенький блоконт-справочник. По замыслу там есть календарь и т.п.
Но с кнопкой удаления у меня приключилась какая-то странная история. В мемо должны записываться все остальное что я не удалил(строку из combobox-потом в новой форме у меня идет как раз сохранение оставшихся строк из combobox в файл ). В него записывается и так не все а при удалении/ записывании в новый файл не выдается ничего? В чем проблема? Заранее благодарен за ответ. Код: procedure TForm1.SpeedButton1Click(Sender: TObject); var f,g:textfile; a:string; i:integer; begin n:=combobox1.text; combobox1.DeleteSelected; assignfile(f,'1.txt'); reset(f); while not eof(f) do begin readln(f,a); for i:=1 to ComboBox1.Items.Count do // оставшиеся строки в комбе if pos(combobox1.items[i],a)=1 then memo2.Lines.Add(a); end; closefile(f); assignfile(g,'1.txt'); rewrite(f); append(f); for i:=1 to memo2.Lines.Count do write(f,memo2.lines[i]);closefile(f); end; |
19.05.2007, 21:57 | #2 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
а вот теперь сам подумай что ты написал ..
посиди и прокоментируй каждую стоку )
Берегите друг друга!
|
20.05.2007, 14:37 | #3 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
Вот я немного переделал алгоритм + добавил коменты, но суть все та же
В коментах написано построчно что как по идее должно работать и там же отмечено что где не работает. Помогите, пожалуйста. procedure TForm1.SpeedButton1Click(Sender: TObject); var f,g:textfile; a:string; i:integer; begin n:=combobox1.text; combobox1.Items.Delete(yu); //удаляю выбранную строку (yu) присваиваю значение выбранной строки в оnclick assignfile(f,'1.txt'); // открываю файл в котором содержится инфа reset(f); // чтение из него while not eof(f) do begin // цикл чтение до конца файла readln(f,a);//считываю строку из файла просто в строку for i:=1 to ComboBox1.Items.Count do // цикл количества строк if pos(combobox1.items.Text[i],a)=1 then memo2.Lines.Add(a); // если позиция этой продстроки встречающейся в строке а=1 тогда добавляем инфу этой строки в memo end; // !!!!!(там в memo записывается почему то только первая строка )!!!! closefile(f); assignfile(g,'1.txt'); rewrite(f); // удаляет и создает новый файл с таким же именем append(f); //открываю для добавления for i:=1 to memo2.Lines.Count do // опять же цикл количества строк write(f,memo2.lines[i]);closefile(f); // должен добавить вфайл инфу и закрыть его end; |
22.05.2007, 16:03 | #4 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
правильный вариант
фуф. сделал. Вот если кому понадобиться:
procedure TForm1.SpeedButton1Click(Sender: TObject); var f,g:textfile; a:string; i:integer; begin if combobox1.Text<>'' then begin ty:=combobox1.ItemIndex; n:=combobox1.Text; combobox1.Items.Delete(ty); assignfile(f,'1.txt'); reset(f); while not eof(f) do begin readln(f,a); if pos(n,a)=0 then memo2.Lines.Add(a); end; closefile(f); assignfile(g,'1.txt'); rewrite(f); append(f); write(f,memo2.text);closefile(f); memo2.Text:=''; end; end; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Электронный Справочник | Killbrum | Софт | 14 | 15.10.2017 20:44 |
Телефонный справочник на TC | Qai | Фриланс | 5 | 25.05.2008 01:02 |
справочник по Api функциям | serg131 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 22.05.2008 04:54 |
телефонни справочник | bmb_66 | БД в Delphi | 8 | 25.02.2008 12:11 |
справочник по прерываниям | serres | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 22.12.2007 16:17 |