Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.06.2010, 12:27   #1
DasModelka
 
Регистрация: 15.06.2010
Сообщений: 7
По умолчанию Запись в конкретную строку, позицию....

Возможно, глупый вопрос, но как переписать в текстовом файле конкретную строку ???? То есть, нажимаем кнопку и в 5 строке вместо 0 появилась 1...
DasModelka вне форума Ответить с цитированием
Старый 15.06.2010, 12:45   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

хм...
Два варианта:
1) Считать весь файл в память (в массив строк например) изменить в нем некий элемент, и опять записать этот массив в тот же файл, очистив его
2) Переписать в другой файл, а потом старый подменить новым.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2010, 13:14   #3
DasModelka
 
Регистрация: 15.06.2010
Сообщений: 7
По умолчанию

А на прямую Delphi не умеет конкретную строку переписывать ????
DasModelka вне форума Ответить с цитированием
Старый 15.06.2010, 13:19   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что значит напрямую?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2010, 15:45   #5
Miha85193
Delphi, OpenGL API
Форумчанин
 
Аватар для Miha85193
 
Регистрация: 29.03.2010
Сообщений: 152
По умолчанию

Возможно вот так:

Код:
procedure CorrectList;
var
  List_1: TStringList;

begin
  List_1 := TStringList.Create;
  List_1.LoadFromFile('File.txt');
  List_1.Strings[4] := '0'; \\ строки нумеруются с нуля
  List_1.SaveToFile('File.txt');
  List_1.Free;
end;
А на прямую, по мему это полный бред.

Последний раз редактировалось Miha85193; 16.06.2010 в 00:11.
Miha85193 вне форума Ответить с цитированием
Старый 15.06.2010, 15:52   #6
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

если верить этой ссылке

http://www.kurslab.ru/sprav_filepos.html

"напрямую" сделать это с текстовым файлом нельзя. А вот с типизированным вроде как можно. У вас именно текстовый или вам принципиально все равно?
Snejnaya вне форума Ответить с цитированием
Старый 15.06.2010, 16:03   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

DasModelka, вы знаете что файлы хранятся как бинарные?(вообще нет такого понятия как текстовый файл(я в плане хранения данных))
и при записи в опред позицию, будет переписаны данные те что были по данному указателю(файловому), а если то что пишете еще и длинее чем то что было на этой строке, то перезапишет и следующую строку.

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

Snejnaya, с типизированным можно, так как один элемент типизированного файла занимает строго N байт. то при перезаписи элемента ничего другого не собьется, но чтоб вставить элемент, все равно нужно копировать данные(хотя бы те которые которые идут после вставляемого элемента)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 15.06.2010 в 16:07.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вставить строку в таблицу excel при этом все остальные сдвинуть на позицию в низ, сохранив их формат. anchorte Общие вопросы Delphi 2 06.04.2010 15:31
Как вставить диапазон в конкретную строку листа Excel со сдвигом вниз имеющихся? malor Microsoft Office Excel 3 17.01.2010 17:48
Вставить запись в нужную строку и колонку Inbox БД в Delphi 1 19.02.2009 19:50
Запись в одну строку Terran Общие вопросы Delphi 2 08.05.2008 23:35
Вывести конкретную строку из файла Captain Nemo Общие вопросы Delphi 9 15.05.2007 03:44