Вниз
Скачать: 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.045 c
15-1265869761
yantux
2010-02-11 09:29
2010.08.27
Существуют ли трансляторы из языка pascal в vhdl?


2-1274791952
DROWSY
2010-05-25 16:52
2010.08.27
Как симмитировать нажатие эскейпа на гриде?


15-1265372241
Alien1769
2010-02-05 15:17
2010.08.27
Задачка на логику


15-1267684899
Медвежонок Пятачок
2010-03-04 09:41
2010.08.27
Земля таки налетела на небесную ось


4-1236197897
d@vinchi
2009-03-04 23:18
2010.08.27
Как получить зарегистрированные в системе TAPI-линии




   Наверх