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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Из файла в массив..... 
:(
    Опции темы
Sniper
Дата 16.8.2002, 05:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Товарищи помогите!!!!
есть файл...

qwertyuiop.txt

12,23, 34,45,56
23,31, 56,78,89

          .
          .
          .
          .
          .

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


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
Vit
Дата 16.8.2002, 06:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Используй открытые массивы, при чтении каждой строки - увеличиваешь размер массива на единицу и добавляешь значение в конец.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Sniper
Дата 16.8.2002, 06:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Теоретически всё понятно.... а ка это на практике...????


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
Vit
Дата 16.8.2002, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Код

procedure TForm1.Button1Click(Sender: TObject);
 var s:string; {temp string}
     t:textfile; {file}
     a: array of array[1..2] of integer; {first array}
     b: array of array[1..3] of integer; {second array}
     i:integer; {temp loop counter}

     function getbefore(substr, str:string):string;
     begin {internal function, return string in front of substring}
      if pos(substr,str)>0 then
        result:=copy(str,1,pos(substr,str)-1)
      else
        result:=str;
     end;{function getbefore(substr, str:string):string;}

     function getafter(substr, str:string):string;
     begin {internal function, return string behind substring}
      if pos(substr,str)>0 then
        result:=copy(str,pos(substr,str)+length(substr),length(str))
      else
        result:='';
     end;{function getafter(substr, str:string):string;}

     function GetValue(var s:string):integer;
     begin{internal function, return first number and remove it from string}
       result:=Strtointdef(GetBefore(',',s),0);{set 0 for not numeric value}
       s:=GetAfter(',',s);
     end;{function GetValue(var s:string):integer;}

begin
 assignfile(t,'c:\1.txt'); {open file}
 reset(t);
 while not eof(t) do {read file line by line}
   begin
     readln(t, s); {read line}
     setlength(a,length(a)+1); {increase bounds of array on 1}
     setlength(b,length(b)+1); {increase bounds of array on 1}
     for i:=1 to 2 do a[length(a)-1][i]:=GetValue(s); {fill out array}
     for i:=1 to 3 do b[length(b)-1][i]:=GetValue(s); {fill out array}
   end; {while not eof(t) do}
 closefile(t); {closing file}
end;





--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 17.8.2002, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


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

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



Ужас какой... а через TStringList никак?


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Vit
Дата 17.8.2002, 06:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Цитата(Song @ 16.8.2002, 13:31)
Ужас какой... а через TStringList никак?

А в чём ужас то? Ну загрузил через TStringList, а ведь разбрасывание данных по массивам приведёт к тому же коду, разница будет только в 3х строчках...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 17.8.2002, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


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

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



А разбрасывать не надо... одной наверное строчкой сформировать такой список где каждое число на одной строке и всё..


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Vit
Дата 17.8.2002, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Цитата(Song @ 16.8.2002, 15:23)
А разбрасывать не надо... одной наверное строчкой сформировать такой список где каждое число на одной строке и всё..

Может я не понял задачу, но автор просил буквально следующее: "записать в два массива первые два числа в один массив остальные три в другой.....?" К сожалению не было уточнено какая структура должна быть этих массивов, и если достаточно просто строковых массивов, тогда конечно код становится гораздо проще - просто используются два TStringList вместо массивов и всё, но я решил, что автору всё-таки нужны цифры и решил взять следующие структуры массивов для заполнения:

a: array of array[1..2] of integer; {first array}
b: array of array[1..3] of integer; {second array}

Конечно код можно несколько упростить за счёт элиминирования функций getbefore и
getafter, так как они встречаются всего по одному разу, но просто я их часто использую в своих программах и решил взять их как они есть без изменений...


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 17.8.2002, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


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

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



А что есть TStringList? Такой же массив... только строковый...
Ладно, молчу-молчу  :)
Мы уже об одном и том же и всё спорим. :D


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

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

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

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

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


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

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


 




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


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

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