Вниз
Скачать: CL | DM;

подойдет ли TStringList?   Найти похожие ветки 

 
Delphist2   (2010-05-27 11:54) [0]

Есть задача хранить список строк, кот. загружаются в визуальный контрол из файла при загрузке программы. Пользователь может добавлять, изменять и удалять строки. Изменения отображаются и в файле. Количество строк измеряется тысячами. Вопрос: в случае, если удалилась допустим предпоследняя строка, метод TStringList.savetofile перезапишет весь файл или же только пару последних строк?


 
Плохиш ©   (2010-05-27 12:05) [1]


> метод TStringList.savetofile перезапишет весь файл или же
> только пару последних строк?

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


 
brother ©   (2010-05-27 12:07) [2]

procedure TStrings.SaveToFile(const FileName: string);
var
 Stream: TStream;
begin
 Stream := TFileStream.Create(FileName, fmCreate);
 try
   SaveToStream(Stream);
 finally
   Stream.Free;
 end;
end;

Фирштеин?


 
brother ©   (2010-05-27 12:07) [3]

опередил ;)


 
Игорь Шевченко ©   (2010-05-27 12:11) [4]


> подойдет ли TStringList?


не подойдет


 
Anatoly Podgoretsky ©   (2010-05-27 12:16) [5]

> Delphist2  (27.05.2010 11:54:00)  [0]

А справка для чего?


 
brother ©   (2010-05-27 12:16) [6]

> А справка для чего?

с инглишем туго?


 
Delphist2   (2010-05-27 12:18) [7]

brother

А TStream в этом смысле более оптимизирован?


 
Anatoly Podgoretsky ©   (2010-05-27 12:20) [8]

Мне кажется, что и TStringList лишний, при наличии визуально компонента.


 
brother ©   (2010-05-27 12:21) [9]

> А TStream в этом смысле более оптимизирован?

ты о чем? О_о


 
Delphist2   (2010-05-27 12:22) [10]

О том, будет ли перезаписываться весь файл или же часть файла


 
brother ©   (2010-05-27 12:24) [11]

1. [4]
2. [1]


 
Медвежонок Пятачок ©   (2010-05-27 12:24) [12]

тебе какая разница?
весь или не весь.


 
brother ©   (2010-05-27 12:25) [13]

на [7]
вегда будет перезаписывать...


 
Delphist2   (2010-05-27 12:28) [14]

Какое решение тогда лучше? Не БД же создавать с ед. таблицей и ед. полем. А весь файл перезаписывать долго.


 
Anatoly Podgoretsky ©   (2010-05-27 12:28) [15]

> brother  (27.05.2010 12:25:13)  [13]

Можно написать overloaded версию


 
Медвежонок Пятачок ©   (2010-05-27 12:28) [16]

А весь файл перезаписывать долго.

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


 
brother ©   (2010-05-27 12:29) [17]

можно, но не нужно - это уже другое)
зы Дядя Толя, как всегда в своем стиле)))))


 
brother ©   (2010-05-27 12:34) [18]

имхо в начинающих проктологией и оптимизацией кода лучше не заниматься...


 
Демо ©   (2010-05-27 13:35) [19]


> Delphist2   (27.05.10 11:54) 
> Есть задача хранить список строк, кот. загружаются в визуальный
> контрол из файла при загрузке программы. Пользователь может
> добавлять, изменять и удалять строки. Изменения отображаются
> и в файле. Количество строк измеряется тысячами. Вопрос:
>  в случае, если удалилась допустим предпоследняя строка,
>  метод TStringList.savetofile перезапишет весь файл или
> же только пару последних строк?


1. Файл читается и записывется только полностью.

Подойдёт или не подойдёт TStringList - решать тебе.
Для этого ответь себе на вопросы:
- приемлемо ли время чтения/записи файла?
- как часто происходит запись?
- приемлемо ли время вставки/обновления/удаления записей из TStringList и как часто это происходит?

Ответив на эти вопросы сам поймёшь - устраивает тебя эта технология или нет.


 
Демо ©   (2010-05-27 13:57) [20]

А для отображения информации и редактирования можно  использовать DrawGrid, например.


 
Anatoly Podgoretsky ©   (2010-05-27 16:02) [21]

> brother  (27.05.2010 12:29:17)  [17]

Я предлагаю профессиональное решение.


 
brother ©   (2010-05-28 04:39) [22]

> профессиональное решение

в начинающих?


 
Anatoly Podgoretsky ©   (2010-05-28 09:05) [23]

> brother  (28.05.2010 04:39:22)  [22]

Так они же не дураки, а начинающие


 
brother ©   (2010-06-01 05:03) [24]

> Так они же не дураки, а начинающие

судя по [7], мат часть хромает, будете учить? или в гугл отошлете?


 
Плохиш ©   (2010-06-01 10:55) [25]


> будете учить? или в гугл отошлете?

Обычно, после пятого поста можно просто посылать...


 
Anatoly Podgoretsky ©   (2010-06-01 12:46) [26]

без всякого гугла.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.5 MB
Время: 0.049 c
15-1267270379
Kerk
2010-02-27 14:32
2010.08.27
Про работу


2-1272958382
Пробегалец
2010-05-04 11:33
2010.08.27
Быстрый вывод графики на канву


2-1272456320
Вадим
2010-04-28 16:05
2010.08.27
Одна функция для двух одинаковых компонент, возникла проблема


4-1235053242
Franzy
2009-02-19 17:20
2010.08.27
Нужен пример CreateFileMapping()


2-1274194704
Delphist2
2010-05-18 18:58
2010.08.27
дата модификации файла




   Наверх