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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заполнение двумерного массива из файла, как лучше? 
:(
    Опции темы
RST8
Дата 25.6.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть файл в формате:

0,5;0,2;0,29;0,39;0,51;0,72
0,55;0,22;0,32;0,43;0,56;0,8
0,6;0,24;0,35;0,48;0,62;0,87

как лучше его в массив считать? Если что можно формат переделать. 
Можно конечно считывать построчно и затем анализировать строки, а может как еще кто подскажет.
XML использовать или еще чего. 
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
Marriage
Дата 25.6.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(RST8 @  25.6.2006,  15:18 Найти цитируемый пост)
XML использовать или еще чего.  

Зачем так сложно ???
Просто храни данные в двоичном виде. ДА и файл занимает меньше места на диске smile)
Код

procedure TForm1.Button1Click(Sender: TObject);
var
IntFile: File of REAL;
p : REAL;
begin
AssignFile(IntFile,'C:\MyNumbers.nmbr');
ReWrite(IntFile);
p:=1.5;
Write(IntFile,p);
p:=2.5;
Write(IntFile,p);
p:=3.5;
Write(IntFile,p);
CloseFile(INtFile);

end;

procedure TForm1.Button2Click(Sender: TObject);
var
IntFile: File of REAL;
p : REAL;
begin
AssignFile(IntFile,'C:\MyNumbers.nmbr');
Reset(IntFile);
READ(IntFile,p);
ShowMessage(FLOATToStr(p));
READ(IntFile,p);
ShowMessage(FLOATToStr(p));
READ(IntFile,p);
ShowMessage(FLOATToStr(p));
CloseFile(INtFile);

end;

 


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
Denic
Дата 25.6.2006, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А если так заносить в массив, можно использовать рекурентную процедуру\ функцию smile 
PM MAIL   Вверх
RST8
Дата 25.6.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А как тогда БОЛЬШУЮ экселевскую таблицу перегнать в этот формат? Писать конвертор самому? 
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
Marriage
Дата 25.6.2006, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



RST8, 
То есть ???
Объясни, я тупой, не пойму  smile

Добавлено @ 17:33 
Цитата(RST8 @  25.6.2006,  15:18 Найти цитируемый пост)
0,5;0,2;0,29;0,39;0,51;0,72
0,55;0,22;0,32;0,43;0,56;0,8
0,6;0,24;0,35;0,48;0,62;0,87

Откуда этот формат взялся ??? Ведь где-то эти числа записываються.  Вот там где записываються в виде символов кудать их в двоичном виде,  в чем проблема ??? 

Это сообщение отредактировал(а) Marriage - 25.6.2006, 17:36


--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
RST8
Дата 25.6.2006, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата

Объясни, я тупой, не пойму 


Да ну, ненадо так сильно про себя. smile

Просто есть экселевскаяя таблица с этими числами. С помощью экселя ее легко можно сохранить в:
0,5;0,2;0,29;0,39;0,51;0,72
0,55;0,22;0,32;0,43;0,56;0,8
0,6;0,24;0,35;0,48;0,62;0,87

Так что их по любому надо считать в массив или напрямую из экселя или их текстового файла (созданного экселем) а пото м сохранить предложенным тобою способом. Щас эти займусь. Спасибо за совет! smile  
--------------------
Посадка, с места которой можно уйти на собственных ногах, считается удачной!
PM   Вверх
Mechanic
Дата 26.6.2006, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

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



В экселе можно сохранить кроме csv еще и "текстовый файл, разделенный табуляцией". Он оказывается практичнее csv. (Например, напрямую вставив из буфера в эксель такие данные, они сами разбредутся по ячейкам).
Из строк такого файла удобно вот такими функами выгребать данные:
Код

{ fetches from string 1st string field & kills it from source }
function NextParam(var s:string):string;
begin
        Result:='';
        if (s='') then exit;
        while (s<>'') and (s[1] >= ' ') do
             begin Result:=Result+s[1]; delete(s,1,1); end;
        delete(s,1,1);
        if (s<>'') and (s[1]=#10) then delete(s,1,1);
end;

{ reads from string Float value }
function NextFloat(var s:string):real;
var     s1:string;
begin
        s1:=Trim(NextParam(s));
     try
        Result:=StrToFloat(s1);
     except
        on exception do Result:=0;
     end;
end;


А из файла тогда читать примерно так можно:
Код

//построчно из файла
readln(f,s);
//потом запятые в точки
s := StringReplace(s, ',', '.', [rfReplaceAll]);
//а потом каждую строку разбираем на числа
while s<>'' do
begin
    a := NextFloat(s);
    MyArray[MyArrayId] := a;
    inc(MyArrayId);
end;
 
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
RST8
Дата 26.6.2006, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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

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

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

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

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


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

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


 




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


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

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