Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
1

Создание и сохранение txt файла.

06.10.2011, 16:13. Просмотров 2437. Ответов 14
Метки нет (Все метки)

У меня не получается с объектом TFileStream.
Помогите, чтобы записалось в файл(допустим, Score.txt) значение(типа String) из Label2.Caption

Добавлено через 26 минут
Ну, короче, нужно создать, записать значение, сохранить.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2011, 16:13
Ответы с готовыми решениями:

Сохранение файла в формате txt
Как сохранить файл через SaveDialog в формате txt?

Сохранение файла в формате txt
Возможно ли используя SaveDialog сохранить файл, и чтобы автоматически этому...

Написать текстовый редактор, в котором продемонстрировать открытие файла, сохранение файла, создание нового файла
№ 5. Написать текстовый редактор, в котором продемонстрировать открытие файла,...

Сделать сохранение файла: из Memo1 в файл txt
begin With SaveDialog1 do begin Memo1.Lines.SaveToFile ...

Создание файла (txt) теста через Delphi
Не создаёт файл с вопросами и ответами, даже если есть уже созданный файл, то...

14
Arcor
5035 / 1912 / 407
Регистрация: 20.11.2009
Сообщений: 6,251
Записей в блоге: 1
06.10.2011, 16:17 2
TStream
1
AndyZorg
Заблокирован
06.10.2011, 16:20 3
Delphi
1
2
3
4
5
6
7
var
  vStream: TFileStream;
begin
  vStream := TFileStream.Create('1221.txt', fmCreate);
  vStream.Write(AnsiString(Label1.Caption), Length(AnsiString(Label1.Caption)));
  vStream.Free;
end;
1
batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
06.10.2011, 16:34  [ТС] 4
Цитата Сообщение от AndyZorg Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
var
  vStream: TFileStream;
begin
  vStream := TFileStream.Create('1221.txt', fmCreate);
  vStream.Write(AnsiString(Label1.Caption), Length(AnsiString(Label1.Caption)));
  vStream.Free;
end;
Variable required ошибка в записи.
0
AndyZorg
Заблокирован
06.10.2011, 17:57 5
Версия Дельфи?
0
batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
06.10.2011, 18:38  [ТС] 6
2009 архитект
0
AndyZorg
Заблокирован
06.10.2011, 20:32 7
Delphi
1
2
3
4
5
6
7
8
9
var
  vStream: TFileStream;
  vString: AnsiString;
begin
  vStream := TFileStream.Create('1221.txt', fmCreate);
  vString := AnsiString(Label1.Caption);
  vStream.Write(vString, Length(vString));
  vStream.Free;
end;
1
batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
07.10.2011, 13:59  [ТС] 8
Спасибо, только записывает T, когда у меня, например, 22 в label1.caption.

Добавлено через 44 секунды
А нужно чтобы записало 22.

Добавлено через 8 часов 52 минуты
Ну так ответите?
0
AndyZorg
Заблокирован
07.10.2011, 14:52 9
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
var
  vStream: TFileStream;
  LBytes: TBytes;
  vEncoding: TEncoding;
begin
  vStream := TFileStream.Create('c:\1221.txt', fmCreate);
  vEncoding := TEncoding.Default;
  LBytes := vEncoding.GetBytes(Label1.Caption);
  vStream.Write(LBytes[0], Length(LBytes));
  vEncoding.Free;
  vStream.Free;
end;
0
batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
07.10.2011, 19:05  [ТС] 10
Цитата Сообщение от AndyZorg Посмотреть сообщение
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
var
  vStream: TFileStream;
  LBytes: TBytes;
  vEncoding: TEncoding;
begin
  vStream := TFileStream.Create('c:\1221.txt', fmCreate);
  vEncoding := TEncoding.Default;
  LBytes := vEncoding.GetBytes(Label1.Caption);
  vStream.Write(LBytes[0], Length(LBytes));
  vEncoding.Free;
  vStream.Free;
end;
Invalid Pointer operation.
0
AndyZorg
07.10.2011, 19:56
  #11

Не по теме:

Почему у меня все работает? Хм...

0
batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
07.10.2011, 20:12  [ТС] 12
Я не знаю.При нажатии на кнопку должно создать 2 файла и записать значения.Я задублировал - фатал еррор при нажатии на кнопку.Удалил дубляж, оставил одно - тоже самое.
0
AndyZorg
Заблокирован
07.10.2011, 20:15 13
Ваш код сюда давайте!
0
batmanrider
21 / 22 / 2
Регистрация: 20.09.2011
Сообщений: 196
Записей в блоге: 1
08.10.2011, 12:14  [ТС] 14
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Menus, ShellApi;
 
type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Button2: TButton;
    Label5: TLabel;
    Image1: TImage;
    Edit1: TEdit;
    Timer2: TTimer;
    Edit2: TEdit;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    procedure Image1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Enabled := true;
Timer1.Enabled := true;
Timer2.Enabled := true;
Label2.Caption := '0';
Label4.Caption := '0';
Edit1.Text := '';
Button1.Enabled := false;
Button2.Enabled := true;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Enabled := false;
Timer1.Enabled := false;
Timer2.Enabled := false;
Button1.Enabled := true;
Button2.Enabled := false;
showmessage('Вы набрали '+Label2.Caption+' очков за '+Label4.Caption+' секунд!');
end;
 
procedure TForm1.Image1Click(Sender: TObject);
var
  x, y, z, t, o, l: Integer;
begin
z := Panel3.Width - Image1.Width;
t := Panel3.Height - Image1.Height;
x := random(z);
y := random(t);
Image1.Left := x;
Image1.Top := y;
o:=1;
l:=Strtoint(Label2.Caption)+o;
Label2.Caption := Inttostr(l);
end;
 
procedure TForm1.N3Click(Sender: TObject);
var
  vStream: TFileStream;
  v1Stream: TFileStream;
  LBytes: TBytes;
  L1Bytes: TBytes;
  vEncoding: TEncoding;
  v1Encoding: TEncoding;
begin
  vStream := TFileStream.Create('Score.txt', fmCreate);
  vEncoding := TEncoding.Default;
  LBytes := vEncoding.GetBytes(Label2.Caption);
  vStream.Write(LBytes[0], Length(LBytes));
  vEncoding.Free;
  vStream.Free;
  v1Stream := TFileStream.Create('Time.txt', fmCreate);
  v1Encoding := TEncoding.Default;
  L1Bytes := v1Encoding.GetBytes(Label4.Caption);
  v1Stream.Write(LBytes[0], Length(L1Bytes));
  v1Encoding.Free;
  v1Stream.Free;
end;
 
procedure TForm1.N4Click(Sender: TObject);
var
  f, f1: TStringList;
begin
if FileExists('Time.txt') and FileExists('Score.txt') then
begin
  f:=TStringList.Create();
  f.LoadFromFile('Score.txt');
  Label2.Caption:=f.Strings[0];
  f.Free;
  f1:=TStringList.Create();
  f1.LoadFromFile('Time.txt');
  Label4.Caption:=f1.Strings[0];
  f1.Free
end;
end;
 
procedure TForm1.N5Click(Sender: TObject);
begin
showmessage('У вас последняя версия.');
end;
 
procedure TForm1.N6Click(Sender: TObject);
begin
ShellExecute( Handle, 'open', 'ya.ru', nil, nil, SW_NORMAL );
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
var o, l: Integer;
begin
o:=1;
l:=Strtoint(Label4.Caption)+o;
Label4.Caption := Inttostr(l);
if Label2.Caption = '0' then
Edit1.Text := 'Тыкай на плюсик уже!!!';
if Label2.Caption = '1' then
Edit1.Text := 'Хорошо начал :)';
if Label2.Caption = '10' then
Edit1.Text := '10 раз - хорошо!';
if Label2.Caption = '20' then
Edit1.Text := 'Продолжай';
if Label2.Caption = '50' then
Edit1.Text := '50 раз - монстр!';
if Label2.Caption = '100' then
Edit1.Text := 'Да ты крутой, бро.';
if Label2.Caption = '150' then
Edit1.Text := 'Дойдёшь до 200 получишь приз!';
if Label2.Caption = '200' then
Edit1.Text := 'Твой приз пропал, извини.';
if Label2.Caption = '300' then
Edit1.Text := 'Ты ещё тут?Ого...';
if Label2.Caption = '500' then
Edit1.Text := 'Респект';
if Label2.Caption = '750' then
Edit1.Text := 'Неожиданно';
if Label2.Caption = '1000' then
begin
Edit1.Text := 'Конец игры, кто играл - тому шоколадная медалька x)';
Image1.Enabled := false;
Timer1.Enabled := false;
Button1.Enabled := true;
Button2.Enabled := false;
end;
end;
 
procedure TForm1.Timer2Timer(Sender: TObject);
var
  m, m1: Integer;
begin
  m:=Strtoint(Label2.Caption);
  m1:=Strtoint(Label4.Caption);
  Edit2.Text:='Всё нормально с вашей реакцией.';
  if m1 > m then
  begin
    Edit2.Text := 'Почему такая плохая реакция?';
  end;
  if m1 = m then
  begin
    Edit2.Text := 'Тоже не хорошо';
  end;
end;
 
end.
Вот.

Добавлено через 47 секунд
И именно фатал еррор при тыке на "сохранение"

Добавлено через 13 часов 23 минуты
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
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Menus, ShellApi;
 
type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Panel1: TPanel;
    Panel2: TPanel;
    Panel3: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button1: TButton;
    Button2: TButton;
    Label5: TLabel;
    Image1: TImage;
    Edit1: TEdit;
    Timer2: TTimer;
    Edit2: TEdit;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    procedure Image1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Enabled := true;
Timer1.Enabled := true;
Timer2.Enabled := true;
Label2.Caption := '0';
Label4.Caption := '0';
Edit1.Text := '';
Button1.Enabled := false;
Button2.Enabled := true;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Image1.Enabled := false;
Timer1.Enabled := false;
Timer2.Enabled := false;
Button1.Enabled := true;
Button2.Enabled := false;
showmessage('Вы набрали '+Label2.Caption+' очков за '+Label4.Caption+' секунд!');
end;
 
procedure TForm1.Image1Click(Sender: TObject);
var
  x, y, z, t, o, l: Integer;
begin
z := Panel3.Width - Image1.Width;
t := Panel3.Height - Image1.Height;
x := random(z);
y := random(t);
Image1.Left := x;
Image1.Top := y;
o:=1;
l:=Strtoint(Label2.Caption)+o;
Label2.Caption := Inttostr(l);
end;
 
procedure TForm1.N3Click(Sender: TObject);
var
  vStream: TFileStream;
  v1Stream: TFileStream;
  LBytes: TBytes;
  L1Bytes: TBytes;
  vEncoding: TEncoding;
  v1Encoding: TEncoding;
begin
  vStream := TFileStream.Create('Score.txt', fmCreate);
  vEncoding := TEncoding.Default;
  LBytes := vEncoding.GetBytes(Label2.Caption);
  vStream.Write(LBytes[0], Length(LBytes));
  vEncoding.Free;
  vStream.Free;
  v1Stream := TFileStream.Create('Time.txt', fmCreate);
  v1Encoding := TEncoding.Default;
  L1Bytes := v1Encoding.GetBytes(Label4.Caption);
  v1Stream.Write(LBytes[0], Length(L1Bytes));
  v1Encoding.Free;
  v1Stream.Free;
end;
 
procedure TForm1.N4Click(Sender: TObject);
var
  f, f1: TStringList;
begin
if FileExists('Time.txt') and FileExists('Score.txt') then
begin
  f:=TStringList.Create();
  f.LoadFromFile('Score.txt');
  Label2.Caption:=f.Strings[0];
  f.Free;
  f1:=TStringList.Create();
  f1.LoadFromFile('Time.txt');
  Label4.Caption:=f1.Strings[0];
  f1.Free;
  Image1.Enabled := true;
  Timer1.Enabled := true;
  Timer2.Enabled := true;
  Edit1.Text := 'Игра успешно загружена.';
  Button1.Enabled := false;
  Button2.Enabled := true;
end;
end;
 
procedure TForm1.N5Click(Sender: TObject);
begin
showmessage('У вас последняя версия.');
end;
 
procedure TForm1.N6Click(Sender: TObject);
begin
ShellExecute( Handle, 'open', 'ya.ru', nil, nil, SW_NORMAL );
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
var o, l: Integer;
begin
o:=1;
l:=Strtoint(Label4.Caption)+o;
Label4.Caption := Inttostr(l);
if Label2.Caption = '0' then
Edit1.Text := 'Тыкай на плюсик уже!!!';
if Label2.Caption = '1' then
Edit1.Text := 'Хорошо начал :)';
if Label2.Caption = '10' then
Edit1.Text := '10 раз - хорошо!';
if Label2.Caption = '20' then
Edit1.Text := 'Продолжай';
if Label2.Caption = '50' then
Edit1.Text := '50 раз - монстр!';
if Label2.Caption = '100' then
Edit1.Text := 'Да ты крутой, бро.';
if Label2.Caption = '150' then
Edit1.Text := 'Дойдёшь до 200 получишь приз!';
if Label2.Caption = '200' then
Edit1.Text := 'Твой приз пропал, извини.';
if Label2.Caption = '300' then
Edit1.Text := 'Ты ещё тут?Ого...';
if Label2.Caption = '500' then
Edit1.Text := 'Респект';
if Label2.Caption = '750' then
Edit1.Text := 'Неожиданно';
if Label2.Caption = '1000' then
begin
Edit1.Text := 'Конец игры, кто играл - тому шоколадная медалька x)';
Image1.Enabled := false;
Timer1.Enabled := false;
Button1.Enabled := true;
Button2.Enabled := false;
end;
end;
 
procedure TForm1.Timer2Timer(Sender: TObject);
var
  m, m1: Integer;
begin
  m:=Strtoint(Label2.Caption);
  m1:=Strtoint(Label4.Caption);
  Edit2.Text:='Всё нормально с вашей реакцией.';
  if m1 > m then
  begin
    Edit2.Text := 'Почему такая плохая реакция?';
  end;
  if m1 = m then
  begin
    Edit2.Text := 'Тоже не хорошо';
  end;
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
procedure TForm1.N3Click(Sender: TObject);
var
  vStream: TFileStream;
  v1Stream: TFileStream;
  LBytes: TBytes;
  L1Bytes: TBytes;
  vEncoding: TEncoding;
  v1Encoding: TEncoding;
begin
  vStream := TFileStream.Create('Score.txt', fmCreate);
  vEncoding := TEncoding.Default;
  LBytes := vEncoding.GetBytes(Label2.Caption);
  vStream.Write(LBytes[0], Length(LBytes));
  vEncoding.Free;
  vStream.Free;
  v1Stream := TFileStream.Create('Time.txt', fmCreate);
  v1Encoding := TEncoding.Default;
  L1Bytes := v1Encoding.GetBytes(Label4.Caption);
  v1Stream.Write(LBytes[0], Length(L1Bytes));
  v1Encoding.Free;
  v1Stream.Free;
end;
И помогите с ShellExecute.Не запускает сайт.

Добавлено через 2 часа 27 минут
Помогите!

Добавлено через 5 минут
Поможешь, AndyZorg?
0
Arcor
5035 / 1912 / 407
Регистрация: 20.11.2009
Сообщений: 6,251
Записей в блоге: 1
08.10.2011, 20:50 15
вот на счет шеля
Delphi
1
  ShellExecute(0, nil, 'firefox.exe', 'google.ru', nil, 0)
открываем мозиллу и загружаем гуглю
1
08.10.2011, 20:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2011, 20:50

Сохранение данных с ListView в .txt и загрузка с .txt
Сохранение данных с ListView в .txt и загрузка с .txt Помогите.

Создание/редактирование/сохранение файла в Unicode
Добрый день. Подскажите. Создаю udl файл для работы с базой данных. хочу...

Создание и сохранение ini файла в Memo
Файл INI сохраняется как текстовый файл просто немогу найти инфу где можно...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru