|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.01.2008, 19:48 | #1 |
Пользователь
Регистрация: 18.01.2008
Сообщений: 22
|
Вот задача: Существует текстовый файл, в котором хранится информация(названия, цвет, количество, цена и шифр товара),в данном случае мебель. При нажатии кнопки(добавить информацию о товаре) программа должна "просмотреть" весь текстовый файл, и если там не существует такого наименования, должна добавить информацию в конец файла, если же такое название существует, то изменить параметры(к примеру, в тексте уже встречался красный стул количеством 3 и мы еще добавляем с клавиатуры 5 и необходимо, чтобы в файл записалось: красный стул, количество 8...). Заранее огромное спасибо за помощь...
вот код программы, то что я сумел сам сделать... unit kladovwik; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm2 = class(TForm) Button1: TButton; LabeledEdit1: TLabeledEdit; LabeledEdit2: TLabeledEdit; LabeledEdit3: TLabeledEdit; LabeledEdit4: TLabeledEdit; LabeledEdit5: TLabeledEdit; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation uses Unit1; {$R *.dfm} procedure dobavlenie(var q: string; var w:integer); var i,e:integer; begin if length(q)<w then begin e:=w-length(q); for i:=1 to e do begin q:=q+' '; end; end; end; procedure TForm2.Button1Click(Sender: TObject); var f:textfile; a,b,c,d,k,y:integer; name,cvet,kolvo,cena,wifr,polname,f name,str,myline,x:string; begin name:=labeledEdit1.text; cvet:=labeledEdit2.text; kolvo:=labeledEdit3.text; cena:=labeledEdit4.text; wifr:=labeledEdit5.text; polname:=name+' '+cvet; fname:='D:\mybase.txt'; assignfile(f,fname); {$I-} reset(f); {$I+} if IOResult<> 0 then Rewrite(f); a:=50; b:=10; c:=10; d:=10; dobavlenie(polname,a); dobavlenie(kolvo,b); dobavlenie(cena,c); dobavlenie(wifr,d); k:=0; while (not EOF(f) and (k=0)) do begin readln(f,myline); k:=pos(polname,myline); end; if k<>0 then begin x:=copy(myline,50,10); y:=strtoint(kolvo)+strtoint(x); delete (myline,50,10); insert(kolvo,myline,50); end else begin closefile(f); append(f); str:=polname+kolvo+cena+wifr; writeln(f,str); showmessage('Информация успешно сохранена'); closefile(f); end; labelededit1.clear; labelededit2.clear; labelededit3.clear; labelededit4.clear; labelededit5.clear; end; end. Последний раз редактировалось Stilet; 30.01.2008 в 11:15. |
19.01.2008, 01:39 | #2 |
With best regards
Участник клуба
Регистрация: 20.04.2007
Сообщений: 1,448
|
Для начала перейдите на типизированные файлы.
Или можно оформить в виде БД. Информации на форуме по этим вопросам много.
Life is too short, play more...
Как правильно задавать вопросы |
19.01.2008, 09:36 | #3 |
Пользователь
Регистрация: 18.01.2008
Сообщений: 22
|
так в том-то и проблема, что нужно как текстовый файл оформить, а не как БД...
|
19.01.2008, 19:44 | #4 |
Пользователь
Регистрация: 18.01.2008
Сообщений: 22
|
подскажите пожалуйста как заменить одну строку в текстовом файле другой...функции delete,insert не работают в текстовых файлах?заранее премного благодарен!
|
20.01.2008, 02:00 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Если мне память не изменяет, то:
описываете файл как набор байт (file of byte или file of char) либо как вообще нетипизированный (f: file, потом делайте этому файлу Reset(f,[1]); А после этого можете и читать и писать... для файлов f:text - можно или читать (Reset(f), или только писать (Rewrite(f))) - из стандартной справки: If F is a text file, F becomes read-only. Последний раз редактировалось Serge_Bliznykov; 20.01.2008 в 02:06. |
20.01.2008, 10:53 | #6 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
Открыть файл для записи. Прочитать строки в массив of string (одна строка-один элемент массива). В массиве переделать, что надо и записать в файл.
|
30.01.2008, 10:05 | #7 |
Пользователь
Регистрация: 18.01.2008
Сообщений: 22
|
спасибо всем огромное, доделал...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Мне очень нужна помощь! | Андрей07 | Помощь студентам | 10 | 10.06.2008 17:12 |
Очень нужна помощь в С | Marisha_23 | Помощь студентам | 2 | 26.12.2007 11:37 |
задать печать одной кнопкой, но сразу нужное кол-во копий | Kisunya2104 | Microsoft Office Excel | 1 | 09.08.2007 22:07 |
Нужна помощь в Паскале. Очень-очень срочно. | !!! | Помощь студентам | 2 | 09.02.2007 15:12 |