Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
19 / 19 / 9
Регистрация: 22.11.2010
Сообщений: 321

Добавление новой строки

02.05.2013, 14:14. Показов 3305. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Нужна помощь в добавлении новой записи в txt файл, а точнее:
Хочу сделать программку для записи в неё паролей (Логин:Пароль)
Есть две формы на первой расположены Combobox, Label1, label2, Memo и собственно кнопка (Добавить новый логин и пароль), на второй Edit1( Заголовок ), Edit2( Логин ), Edit3( Пароль ) и кнопка "Добавить".
Проблема в следующем нужно чтобы когда на второй форме когда заполнил все 3 Edit'а нажимаеш на кнопку добавить это всё сохранялось в файл passait.txt в следующем виде: Заголовок1
Логин1:Пароль1
Заголовок2
Логин2:Пароль2 и т.д.
а он просто перезаписывает на новый удаляя при этом предыдущую запись, и в combobox на первой форме отображались "Заголовок1","Заголовок2"и т.д. при выборе которых в Label1 и label2 отображались Логин и Пароль.

И нужно сделать удаление записей.

И я сто пудова геморойник может проще сделать можно???

Первая форма:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
var
  Form2: TForm2;
dir:string;
 
implementation
 
uses Unit3, Unit5, Unit1;
 
{$R *.dfm}
 
procedure TForm2.sBitBtn1Click(Sender: TObject);
begin
Form2.Hide;
Form3.Show;
 
end;
 
 
 
procedure TForm2.sComboBox1Click(Sender: TObject);
 var log,pas:string;
 a,i:Integer;
begin
 
a:=Form2.mmo2.Lines.Count; 
for i:=0 to a-1 do
begin
log:=Copy(Form2.mmo2.Lines[i],0,Pos(':',Form2.mmo2.Lines[i])-1);
pas:=Copy(Form2.mmo2.Lines[i],Pos(':',Form2.mmo2.Lines[i])+1, Length(Form2.mmo2.Lines[i]));
 
end;
Form2.sLabelFX1.Visible:=true;
Form2.sLabelFX2.Visible:=True;
 
 
Form2.sLabelFX1.Caption:=('Ваш логин:'+log);
Form2.sLabelFX2.Caption:=('Ваш пароль:'+pas);
end;
 
procedure TForm2.N4Click(Sender: TObject);
begin
Application.Terminate; //close
end;
 
procedure TForm2.sBitBtn3Click(Sender: TObject);
begin
Application.Terminate;//close
end;
 
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate; //close
end;
 
procedure TForm2.sBitBtn2Click(Sender: TObject);
begin
Form5.Show;  
end;
 
procedure TForm2.FormCreate(Sender: TObject);
 
 
begin
getdir(0,dir);
dir:=dir+'\passait.ini';
Form2.mmo2.Lines.LoadFromFile(dir);
Form2.sComboBox1.Items.LoadFromFile(dir);
 
 
 
end;
 
end.

Вторая форма:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
procedure TForm5.sBitBtn1Click(Sender: TObject);
var dir,e1,e2,e3:string;
f:TextFile;
 
begin
e1:=edt1.Text;
e2:=edt2.Text;
e3:=edt3.Text;
getdir(0,dir);// Корень
dir:=dir+'\passait.ini'; //присваеваем dir корень программы и passite.ini
 
Form2.sComboBox1.Items.Add(edt1.Text);//Добавляем новую строку в combo box
Form2.sComboBox1.Items.SaveToFile(dir);//Сохраняем строки ComboBox в passaite.ini
 
 
 
 
Form5.edt1.Clear;// Очищаем значение edit1
Form5.edt2.Clear;// Очищаем значение edit2
Form5.edt3.Clear;// Очищаем значение edit3
Form5.Hide;      // Скрываем Form5
Form2.Show;      // Открываем Form2
 
AssignFile(f,'passait.ini');// инициализирует файловую переменную
 Append(f);      //Создаёт файл passait.ini
 //code(e2, h, false);//выполнить процедуру  code для переменной e2
 //code(e3, h, false);//выполнить процедуру  code для переменной e3
 
 WriteLn (f,(e1));
 WriteLn (f,(e2+':'+e3)); //записываем в f значения edit1 edit2
 CloseFile(f);            //закрываем файл passait.ini
 //ShowMessage('Логин изменён на : '+Form5.edt2.Text+', пароль изменён на : '+Form5.edt3.Text);
 
 
 
end;
 
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.05.2013, 14:14
Ответы с готовыми решениями:

Добавление новой вкладки в свойства файла.
Собственно возник такой вопрос. Как добавить свою вкладку(с данными о файле) в окно свойств файла (примером данной вкладки может...

Добавление новой строки
Помогите я добавляю данные на делфи через навигатор в дбгрид. там много строк. Я хочу добавить новую строку например на 10-й строке(это...

Работа с DataSet и DBGrid: осуществить добавление новой строки
Ребята,помогите. работаю в delphi и с базой firebirds. проблема такая: нужно осуществить добавление новой строки. при открытии формы курсор...

29
angstrom
04.05.2013, 18:37
Студворк — интернет-сервис помощи студентам

Не по теме:


Сейчас некогда, чуть позже.

angstrom
04.05.2013, 21:36
Пример с использованием самого простого метода шифрования - xor, только для честных людей.
Вложения
Тип файла: rar dragon1.rar (2.5 Кб, 2 просмотров)
19 / 19 / 9
Регистрация: 22.11.2010
Сообщений: 321
05.05.2013, 15:46  [ТС]
ошибку пишит: [Warning] Unit2.pas(72): Unsafe code 'String index to var param'

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
unit Unit2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, sBitBtn, sComboBox, sMemo, Menus, sLabel;
 
type
  TForm2 = class(TForm)
    sComboBox1: TsComboBox;
    sBitBtn2: TsBitBtn;
    mm1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N7: TMenuItem;
    sLabelFX1: TsLabelFX;
    sLabelFX2: TsLabelFX;
    sBitBtn3: TsBitBtn;
    sBitBtn4: TsBitBtn;
    N6: TMenuItem;
    ListBox1: TListBox;
    procedure N4Click(Sender: TObject);
    procedure sBitBtn3Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sBitBtn2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure sComboBox1Change(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure sBitBtn4Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
 
 
 
 
 
  private
    { Private declarations }
  public
    { Public declarations }
     function  EncodeDecode(St : String) : String;
    procedure SaveIniFile;
     procedure LoadIniFile;
  end;
 
var
  Form2: TForm2;
dir:string;
sl : TStringList;
 
implementation
 
uses Unit3, Unit5, Unit1;
 
{$R *.dfm}
 
function TForm2.EncodeDecode(St: String): String;
var
  I : Integer;
begin
  Result := St;
 
  if Result <> '' then
  begin
    if Result[Length(Result) - 1] = #$D then
      SetLength(Result, Length(Result) - 2);
    for I := 1 to Length(Result) do
    
      Result[I] := chr(ord(Result[I]) xor $55);
  end;
end;
 
 
procedure TForm2.SaveIniFile;
begin
 sl.Text := EncodeDecode(sl.Text);
  sl.SaveToFile('passait.ini');
end;
 
procedure TForm2.LoadIniFile;
 
var
  I : Integer;
begin
  if FileExists('passait.ini') then
  begin
    sl.LoadFromFile('passait.ini');
    sl.Text := EncodeDecode(sl.Text);
    sCombobox1.Items.Clear;
    for I := 0 to sl.Count - 1 do
      if not odd(I) then
        sCombobox1.Items.Add(sl.Strings[I]);
    sCombobox1.ItemIndex := 0;
    sCombobox1Change(sCombobox1);
  end;
end;
 
procedure TForm2.FormCreate(Sender: TObject);
 
begin
sl := TStringList.Create;
  LoadIniFile;
end;
 
procedure TForm2.FormDestroy(Sender: TObject);
begin
sl.Free;
end;
 
procedure TForm2.sComboBox1Change(Sender: TObject);
begin
sLabelFX1.Caption :='ÂÀØ ËÎÃÈÍ:  '+ sl.Names[sComboBox1.ItemIndex * 2 + 1];
sLabelFX2.Caption :='ÂÀØ ÏÀÐÎËÜ: '+ sl.Values[sl.Names[sComboBox1.ItemIndex * 2 + 1]];
end;
 
procedure TForm2.sBitBtn2Click(Sender: TObject);
begin
 with Form5 do
  begin
    Caption := 'Äîáàâèòü çàïèñü';
    Edt1.Text := '';
    Edt2.Text := '';
    Edt3.Text := '';
    ShowModal;
    if ModalResult = mrOK then
      if (Edt1.Text <> '') and (Edt2.Text <> '') and (Edt2.Text <> '') then
      begin
        sl.Add(Edt1.Text);
        sl.Add(Edt2.Text + '=' + Edt3.Text);
        SaveIniFile;
        LoadIniFile;
        sCombobox1.ItemIndex := sCombobox1.Items.Count - 1;
        sCombobox1Change(sCombobox1);
      end;
  end;
end;
 
procedure TForm2.sBitBtn3Click(Sender: TObject);
var
  I : Integer;
begin
 with Form5 do
  begin
    I := sCombobox1.ItemIndex;
    Caption := 'Ðåäàêòèðîâàòü çàïèñü';
    Edt1.Text := sCombobox1.Items[sCombobox1.ItemIndex];
    Edt2.Text := sl.Names[sCombobox1.ItemIndex * 2 + 1];
    Edt3.Text := sl.Values[sl.Names[sCombobox1.ItemIndex * 2 + 1]];
    ShowModal;
    if ModalResult = mrOK then
      if (Edt1.Text <> '') and (Edt2.Text <> '') and (Edt2.Text <> '') then
      begin
        sl.Strings[sCombobox1.ItemIndex * 2] := Edt1.Text;
        sl.Strings[sCombobox1.ItemIndex * 2 + 1] := Edt2.Text + '=' + Edt3.Text;
        SaveIniFile;
        LoadIniFile;
        sCombobox1.ItemIndex := I;
        sCombobox1Change(sCombobox1);
      end;
  end;
end;
 
procedure TForm2.sBitBtn4Click(Sender: TObject);
begin
 if MessageDlg('Óäàëèòü âûáðàííóþ çàïèñü', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
  begin
    sl.Delete(sCombobox1.ItemIndex * 2);
    sl.Delete(sCombobox1.ItemIndex * 2);
    SaveIniFile;
    LoadIniFile;
    sCombobox1.ItemIndex := sCombobox1.Items.Count - 1;
    sCombobox1Change(sCombobox1);
  end;
end;
 
procedure TForm2.N4Click(Sender: TObject);
begin
Application.Terminate; //close
end;
 
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate; //close
end;
 
procedure TForm2.N6Click(Sender: TObject);
begin
Form2.Hide;
Form3.Show;
end;
 
procedure TForm2.N7Click(Sender: TObject);
begin
 with Form5 do
  begin
    Caption := 'Äîáàâèòü çàïèñü';
    Edt1.Text := '';
    Edt2.Text := '';
    Edt3.Text := '';
    ShowModal;
    if ModalResult = mrOK then
      if (Edt1.Text <> '') and (Edt2.Text <> '') and (Edt2.Text <> '') then
      begin
        sl.Add(Edt1.Text);
        sl.Add(Edt2.Text + '=' + Edt3.Text);
        sl.SaveToFile('passait.ini');
        LoadIniFile;
        sCombobox1.ItemIndex := sCombobox1.Items.Count - 1;
        sCombobox1Change(sCombobox1);
      end;
  end;
end;
 
end.
0
angstrom
05.05.2013, 16:26
В какой строке ошибка и какая версия Дельфи. Я писал на Дельфи 7.
19 / 19 / 9
Регистрация: 22.11.2010
Сообщений: 321
05.05.2013, 16:28  [ТС]
у меня тоже Delphi 7
Выделяет эту строку:
sLabelFX1.Caption :='ВАШ ЛОГИН: '+ sl.Names[sComboBox1.ItemIndex * 2 + 1];
0
angstrom
05.05.2013, 16:38
Если подменил файл passait.ini, то так и будет.
19 / 19 / 9
Регистрация: 22.11.2010
Сообщений: 321
05.05.2013, 17:23  [ТС]
всё спасибо ОГРОМНОЕ!!! Всё работает. Я просто скопировал ваш код в свой а passite.ini свой оставил сейчас заменил на ваш всё заработало
0
angstrom
05.05.2013, 17:45
Можно было его совсем удалить и создать новый.
19 / 19 / 9
Регистрация: 22.11.2010
Сообщений: 321
05.05.2013, 17:55  [ТС]
Всё равно что то не то когда удаляеш записи которые там были и вносиш новые они местами меняются
Пример:
Создаём:
"VK"
"7707"
"216"
и
"Mail.ru"
"talanov.kz"
"1456"
В combobox выдаёт при выборе "VK"
"talanov.kz"
"1456"
а при выборе "Mail.ru"
"7707"
"216"
Вложения
Тип файла: rar Пароль.rar (828.3 Кб, 0 просмотров)
0
angstrom
05.05.2013, 18:15
Удалил ini-файл и внёс 2 указанные записи, все выбирается верно. Да и не может иначе, выборку производит StringList.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.05.2013, 18:15

Добавление новой записи
Помогите плиз, нужно добавить новую запись в таблицу, она добавляется, но только при вводе в Edit числовых значений, в Edit1 должно...

Добавление новой записи
Уважаемые форумчане! Есть вопрос: программа работает с бд mysql, после авторизации пользователя ему доступны к просмотру только те записи,...

Добавление новой записи
Добрый вечер, пишу чат на основе бд и для регистрации пользователя требуется создание новой записи с его данными в таблице бд. Собственно в...

Добавление новой записи
Всем привет! В delphi совсем начинающий, поэтому прошу совета. Столкнулся с такой проблемой. У меня есть форма для добавления новой...

добавление новой записи в DBGrid
нажимаю на кнопку &quot;Новая запись&quot; далее код procedure Tform_disciplina.Button1Click(Sender: TObject); begin ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru