Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка из файла в Grid 
:(
    Опции темы
serezhka1986
  Дата 14.10.2009, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 215
Регистрация: 12.6.2009

Репутация: нет
Всего: 0



Подскажите, как загрузить из текстового файла данные (разделенные табуляцией) в Grid? Это вобще возможно?
И еще один момент: при внесении новых данных в этот Грид файл также должен обновиться.  smile 
--------------------
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть жопой на клавиатуру... 
PM   Вверх
Данкинг
Дата 14.10.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Возможно: парсить строки файла соответстенно столбцам и заносить в ячейки грида.

Цитата(serezhka1986 @  14.10.2009,  14:44 Найти цитируемый пост)
И еще один момент: при внесении новых данных в этот Грид файл также должен обновиться. 

Ну, это же заново тебе придётся обновлять грид, что, как я понимаю, не быстро...


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
~FoX~
Дата 14.10.2009, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 5
Всего: 68



serezhka1986, БД проще...


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
amsoft
Дата 17.10.2009, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 17.10.2009
Где: KZ, Astana

Репутация: 1
Всего: 4



Я как раз так и делаю  smile

Код

//функция ищет поле №PosNum в записи RecordString
//поля в записи разделяются символом табуляции (Chr(9))
function GetRecordItem(RecordString: string; PosNum: integer): string;
var
X,Y: integer;
S: string;
begin
S := '';
for Y := 1 to PosNum do
    begin
    X := Pos(Chr(9),RecordString);
    if X = 0
    then begin
         S := RecordString;
         RecordString := '';
         end
    else begin
         S := Copy(RecordString,1,X-1);
         Delete(RecordString,1,X);
         end;
    end;
Result := S;
end;

//загружаем файл в StringGrid
procedure LoadFileToStringGrid;
var
X,Y: integer;
begin
Memo.Lines.LoadFromFile(MyFile);
StringGrid.RowCount := Memo.Lines.Count;
for X := 1 to StringGrid.RowCount do
     for Y := 1 to StringGrid.ColCount do
          StringGrid.Cells[Y-1,X-1] := GetRecordItem(Memo.Lines[X-1],Y);
end;

//сохраняем содержимое StringGrid в файл
procedure SaveStringGridToFile;
var
S: string;
X,Y: integer;
begin
Memo.Clear;
for X := 1 to StringGrid.RowCount do
     begin
     S := StringGrid.Cells[0,X-1]; 
     for Y := 2 to StringGrid.ColCount do
          S := S + Chr(9) + StringGrid.Cells[Y-1,X-1];
     Memo.Lines.Add(S);
     end;     
Memo.Lines.SaveToFile(MyFile);
end;


Лучше вместо TMemo используй TStrings - одним компонентом на форме меньше
В случае с TMemo свойство Memo.WordWrap выставь в False, чтобы каждая запись оставалась в своей строке

Это сообщение отредактировал(а) amsoft - 17.10.2009, 16:06
--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин
PM   Вверх
Hexel
Дата 22.10.2009, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 73
Регистрация: 30.10.2007
Где: UA

Репутация: нет
Всего: нет



Deplhi6
действительно, serezhka1986, примени БД

1) думаю, MS Access для начала хватит. делаешь в нем заготовку с нужными столбцами
2) на форму кидаешь adoDataSet, DataSource, DBGrid и свзяываешь их вместе. лучше постарайся разобраться, если что, пишы. расскажу детальнее

кода не нужно, все необходимые сохранения произойдут сами в нужный момент.

таким я пользовался, хотя всегда можно найти другое, более простое и более сложное решение (см. подфорум БД и реппортинг). но здесь есть один бок - скроллом в таком гриде не пользуйся, или ищи пофиксенный ДБГрид (хоть в том же форуме)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1094 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.