3 / 3 / 0
Регистрация: 30.03.2012
Сообщений: 93

Добавить строку в текстовый файл. Выдает ошибку

01.06.2013, 16:05. Показов 2110. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте)

Нужно добавит сроку в текст файл. Прочитал в книге и нашел пример по которому написал следующий код:
Delphi
1
2
3
4
5
6
7
8
9
var f:TObject;
begin
f:= TStringList.Create();
 f.LoadFromFile('kontrol.txt');
 s:='Hello word!';
 f.Add(s);
 f.SaveToFile('kontrol.txt');
 f.free;
end;
Объявил как TObject потому что когда объявил TString компилятор выдал ошибку что не знает такого.

В чем я ошибся подскажите пожалуйста.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.06.2013, 16:05
Ответы с готовыми решениями:

TStringList и TFileStream: добавить строку в файл
Нужно разобраться. Смысл в следующем. Есть файл текстовый, открываю в потоке, с запретом на чтение и запись другим процессам. Загружаю его...

Программа которая выдает платформу компьютера выдает ошибку
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,...

Dialogs, StdCtrls, ComCtrls, Spin; ошибку выдает на эту строку, что это значит?
Dialogs, StdCtrls, ComCtrls, Spin; ошибку выдает на эту строку, что это значит?

10
 Аватар для i368
3 / 3 / 1
Регистрация: 30.05.2013
Сообщений: 35
01.06.2013, 16:09
Цитата Сообщение от nurekoke Посмотреть сообщение
Здравствуйте)

Нужно добавит сроку в текст файл. Прочитал в книге и нашел пример по которому написал следующий код:
Delphi
1
2
3
4
5
6
7
8
9
var f:TObject;
begin
f:= TStringList.Create();
 f.LoadFromFile('kontrol.txt');
 s:='Hello word!';
 f.Add(s);
 f.SaveToFile('kontrol.txt');
 f.free;
end;
Объявил как TObject потому что когда объявил TString компилятор выдал ошибку что не знает такого.

В чем я ошибся подскажите пожалуйста.
Delphi
1
2
3
4
5
6
7
8
9
10
var
someFile: tStringList;
someStr: string;
begin
   someFile := tStringList.Create;
   someFile.LoadFromFile('D:\domeFile.txt');
   someFile.Strings[1] := someStr;
   someFile.SaveToFile('D:\domeFile.txt');
   someFile.Free;
end;
Попробуй так )
0
angstrom
01.06.2013, 16:16
Цитата Сообщение от i368 Посмотреть сообщение
Delphi
1
someFile.Strings[1] := someStr;
Так будет замещаться 1 строка. Либо использовать Add для добавки в конец, либо Insert для вставки в нужную строку.
3 / 3 / 0
Регистрация: 30.03.2012
Сообщений: 93
01.06.2013, 16:16  [ТС]
Цитата Сообщение от i368 Посмотреть сообщение
Попробуй так )
Спасибо, сам разобрался. Нужно было объявить след. образом: f:TStringList
0
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
03.06.2013, 12:48
Цитата Сообщение от nurekoke Посмотреть сообщение
Объявил как TObject потому что когда объявил TString компилятор выдал ошибку что не знает такого.
В чем я ошибся подскажите пожалуйста.
Не TString, а TStrings. TStrings - это абстрактный класс и поэтому нельзя создать экземпляр этого класса.
Что такое абстрактный класс и как его использовать на примере TStrings: https://www.cyberforum.ru/delp... ost4610508
0
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
03.06.2013, 12:53
Цитата Сообщение от nurekoke Посмотреть сообщение
Здравствуйте)

Нужно добавит сроку в текст файл. Прочитал в книге и нашел пример по которому написал следующий код:
Delphi
1
2
3
4
5
6
7
8
9
var f:TObject;
begin
f:= TStringList.Create();
 f.LoadFromFile('kontrol.txt');
 s:='Hello word!';
 f.Add(s);
 f.SaveToFile('kontrol.txt');
 f.free;
end;
Объявил как TObject потому что когда объявил TString компилятор выдал ошибку что не знает такого.

В чем я ошибся подскажите пожалуйста.
Вот:
Delphi
1
2
3
4
5
6
7
8
9
10
//Button1.click;
var
f1: TextFile;
begin
AssignFile(f1,ExtractFilePath(Application.ExeName) + 'kontrol.txt');
Rewrite(f1);
Write('Hello World!');
СloseFile(f1);
ShowMessage('Файл готов');
end;
0
angstrom
03.06.2013, 13:05
Цитата Сообщение от саша40 Посмотреть сообщение
Delphi
1
2
Rewrite(f1);
Write('Hello World!');
Этот код конечно откроет файл на добавление записей, и конечно допишет туда приветствие.
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
03.06.2013, 13:09
саша40, здесь немного другое условие. По условию задачи, в файл надо добавить строку, не теряя прежнего содержимого. А при вызове Rewrite() прежнее содержимое файла будет уничтожено. Поэтому, если файл не существует, надо его создать через вызов Rewrite(), а если существует - то открыть через вызов Append(). Append() открывает текстовый файл для добавления текста в его конец.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  f1: TextFile;
  FileName : String;
begin
  FileName := ExtractFilePath(ParamStr(0)) + 'kontrol.txt';
  AssignFile(f1, FileName);
  if FileExists(FileName) then
    Append(f1)
  else
    Rewrite(f1);
  Write('Hello World!');
  СloseFile(f1);
  ShowMessage('Файл готов');
end;
0
angstrom
03.06.2013, 13:24
Цитата Сообщение от Mawrat Посмотреть сообщение
Write('Hello World!');
Забыл указать запись в файл.
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
03.06.2013, 19:51
Цитата Сообщение от angstrom Посмотреть сообщение
Забыл указать запись в файл.
Да, точно, проглядел я.
С исправлениями:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  f1: TextFile;
  FileName : String;
begin
  FileName := ExtractFilePath(ParamStr(0)) + 'kontrol.txt';
  AssignFile(f1, FileName);
  if FileExists(FileName) then
    Append(f1)
  else
    Rewrite(f1);
  Write(f1, 'Hello World!');
  СloseFile(f1);
  ShowMessage('Файл готов');
end;
0
157 / 300 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
03.06.2013, 21:04
Цитата Сообщение от Mawrat Посмотреть сообщение
Да, точно, проглядел я.
С исправлениями:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  f1: TextFile;
  FileName : String;
begin
  FileName := ExtractFilePath(ParamStr(0)) + 'kontrol.txt';
  AssignFile(f1, FileName);
  if FileExists(FileName) then
    Append(f1)
  else
    Rewrite(f1);
  Write(f1, 'Hello World!');
  СloseFile(f1);
  ShowMessage('Файл готов');
end;
подправили. Всю грязную работу за автора сделали.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.06.2013, 21:04
Помогаю со студенческими работами здесь

Я сделал программу по переносу из записи в типизированный файл, но процедура выдает ошибку.
Вот программа.Выдает вот эту ошибку' Введите артикул детали( d.art:=stringgrid1.Cells) is not a valid integer value'. begin ...

Не записывается в текстовый файл информация, ошибок компилятор не выдает
Здравствуйте, нужно записать текущую дату компьютера в текстовый файл. var MyFile: TextFile; MyDate: Real; begin ...

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

Добавить текстовый файл в проект
Подключил к проекту текстовый файл. Вопрос: как в процессе работы программы редактировать/сохранить его содержимое?

Помогите найти ошибку в сохранении stringgrid в текстовый файл
выдаёт ошибку "'is not a valid floating point value' procedure TForm2.Button1Click(Sender: TObject); {сохранение} var ...


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

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

Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru