Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.02.2010, 15:46
Аватар для T-dayne
T-dayne T-dayne вне форума
Начинающий
 
Регистрация: 26.01.2010
Сообщения: 180
Репутация: 31
По умолчанию Загрузка данных из файла в StringGrid

Нужно, чтобы при запуске приложения, загружались строки из c:\data.txt в таблицу stringgrid.
Вот нашел код для записи/загрузки из файла строк в таблицу , но не получается привязать к фиксированому файлу его http://www.delphisources.ru/pages/fa...load_file.html

Надеюсь на помощь
Ответить с цитированием
  #2  
Старый 02.02.2010, 15:53
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Что именно не получается?
Ответить с цитированием
  #3  
Старый 02.02.2010, 17:23
Аватар для T-dayne
T-dayne T-dayne вне форума
Начинающий
 
Регистрация: 26.01.2010
Сообщения: 180
Репутация: 31
По умолчанию

вот что происходит при создании формы
PHP код:
procedure TForm1.FormCreate(SenderTObject);
var
   
f:          TextFile;
   
iTmpikInteger;
   
strTemp:    String;
 
begin
   AssignFile
(f'c:\data.txt');
   
Reset(f);
   
with StringGrid1 do
   
begin

    Readln
(fiTmp);
     
ColCount := iTmp;

    
Readln(fiTmp);
     
RowCount := iTmp;

    for 
:= 0 to ColCount do
       for 
:= 0 to RowCount do
       
begin
         Readln
(fstrTemp);
         
Cells[ik] := strTemp;
       
end;
   
end;
   
CloseFile(f);
end
однако таблица, остается пустой.(файл не пустой)

Последний раз редактировалось T-dayne, 02.02.2010 в 17:26.
Ответить с цитированием
  #4  
Старый 02.02.2010, 17:53
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Ну понятно, а в файле вначале записано кол-во строк и столбцов?
Ответить с цитированием
  #5  
Старый 02.02.2010, 18:20
Аватар для T-dayne
T-dayne T-dayne вне форума
Начинающий
 
Регистрация: 26.01.2010
Сообщения: 180
Репутация: 31
По умолчанию

Цитата:
Сообщение от TOJluK
Ну понятно, а в файле вначале записано кол-во строк и столбцов?
не понял о каких столбцах речь...
если загружать кнопкой load, то все корректно загружается.
но при запуске программы почему-то не работает.
http://file.qip.ru/file/118486644/efdbc296/123.html
Ответить с цитированием
  #6  
Старый 02.02.2010, 21:55
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Вы бы хоть исходник чтоль разменстили, а то по откомпилированному проекту сложно судить, где вы что сделали не так.)) Но могу сказать, что у меня с вашим файлом test.txt все работает.
Ответить с цитированием
  #7  
Старый 02.02.2010, 22:32
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Не, так как вы делаете не пойдет.
Вы работаете с текстовым файлом, и поэтому при чтении из файла командой ReadLn вы считывать строку должны в строковую переменную, а вот уже потом, вы ее можете преобразовать в число и получить размерность таблицы.
Запись в текстовый файл должна происходить по тому-же принципу, если надо сохранить число, то преобразуйте его сначала в строку, а потом уже записывайте в файл.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #8  
Старый 02.02.2010, 22:35
Аватар для T-dayne
T-dayne T-dayne вне форума
Начинающий
 
Регистрация: 26.01.2010
Сообщения: 180
Репутация: 31
По умолчанию

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

Source:
Вложения
Тип файла: rar тест таблицы.rar (8.0 Кбайт, 45 просмотров)
Ответить с цитированием
  #9  
Старый 05.02.2010, 12:00
AntoNechayuk AntoNechayuk вне форума
Новичок
 
Регистрация: 23.11.2009
Сообщения: 58
Репутация: 10
По умолчанию

не могу сохранить вложение... перезалейте
Ответить с цитированием
  #10  
Старый 05.02.2010, 12:27
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Цитата:
Сообщение от T-dayne
при его отдельной загрузке, я знаю что работает. Но не работает событие create для главной формы , не загружается он автоматически при запуске программы!

Source:
Да все там работает. Единственное, что могу предположить- это то, что указан путь к файлу, а его там нет:
Код:
   AssignFile(f, 'c:\test.txt');
Т.е. убедитесь, что 'c:\test.txt' существует на самом деле по этому пути.
Ответить с цитированием
  #11  
Старый 05.02.2010, 12:43
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Зайди в ObjectInspector своей формы, там на вкладке Events выбери нужную процедуру (FormCreate) напротив события OnCreate...
Теперь OnCreate будет работать, но прога будет ворчать т.к. ты указываешь читать файл с C:\ , а его там нет...
Тебе бы добавить функцию FileExists
http://www.delphibasics.ru/FileExists.php
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #12  
Старый 05.02.2010, 14:47
Аватар для T-dayne
T-dayne T-dayne вне форума
Начинающий
 
Регистрация: 26.01.2010
Сообщения: 180
Репутация: 31
По умолчанию

там файл есть, заранее подготовленный и читаемый. Но событие не срабатывает.
Цитата:
нить число, то преобразуйте его сначала в строку,
вот кусок кода:
PHP код:
begin
         Readln
(fstrTemp);
         
Cells[ik] := strTemp;
       
end
так и есть, файл читается, сначала в строковую переменную.
Ответить с цитированием
  #13  
Старый 05.02.2010, 15:07
Аватар для T-dayne
T-dayne T-dayne вне форума
Начинающий
 
Регистрация: 26.01.2010
Сообщения: 180
Репутация: 31
По умолчанию

попытался сделать так:
PHP код:
procedure TForm1.FormCreate(SenderTObject);
var
   
f:          tstringlist;
   
iTmpiklInteger;
   
strTemp:    String;
 
begin
   f
:=tstringlist.Create();
   
f.loadfromfile('c:\test.txt');
   
with StringGrid1 do
   
begin
   
for l:=1 to 10 do
    for 
:= 0 to ColCount do
       for 
:= 0 to RowCount do
       
begin
         strtemp
:=f.strings[l];
         
Cells[ik] := strTemp;
       
end;
   
end;
f.Free;
end
тоже не срабатывает!
Ответить с цитированием
  #14  
Старый 05.02.2010, 16:26
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

T-dayne я еще раз повторяю- в представленном тобой коде все работает. Проблема не в нем, может что- то с системой, может с дэльфой, но не с кодом.
Ответить с цитированием
  #15  
Старый 05.02.2010, 16:30
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Повторюсь еще раз
Цитата:
Зайди в ObjectInspector своей формы, там на вкладке Events выбери нужную процедуру (FormCreate) напротив события OnCreate...
У тебя такого не было, проверил в твоем коде...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:36.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025