![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#16
|
||||
|
||||
![]() Вот так сойдёт? Если оно ещё надо
![]() Код:
procedure TForm1.Button1Click(Sender: TObject); var F: System.Text; S : TStringList; Line: String; begin if OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then with StringGrid1 do try AssignFile(F, OpenDialog1.FileName); FileMode := 0; Reset(F); S := TStringList.Create; ColCount := 2; RowCount := 2; while not EOF(F) do begin ReadLn(F, Line); S.DelimitedText := IntToStr(RowCount-1) + ' ' + Line; ColCount := Max(ColCount, S.Count); Rows[RowCount-1] := S; RowCount := RowCount + 1; end; // while not EOF(F) do finally RowCount := RowCount - 1; S.Free; if TTextRec(F).Mode <> fmClosed then CloseFile(F); end; // try end; // procedure TForm1.Button1Click(Sender: TObject) |
#17
|
|||
|
|||
![]() в принципе надо, но задача маленько поменялась и я сам во всем уже запутался
![]() |
#18
|
||||
|
||||
![]() Так вот же тебе накатал, читает из текстового файла в StringList любой(условно
![]() Последний раз редактировалось BBBCat, 17.03.2013 в 00:07. |
#19
|
||||
|
||||
![]() Вот хорош конечно класс StringList, но когда вам надо обработать большой текстовый файл быстренько, вообще никуда не годится, пока он выделит память, пока считает... Простое доброе решение через ReadLn сделает тоже самое на порядок быстрее, так-что не всегда то что удобно - лучше.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#20
|
||||
|
||||
![]() Согласен, у меня есть примеры, когда кода много, но оно всё летает, а если использовать стандартные методы - тормозит. К тому же он сказал, что у него большие объёмы. Но мне показалось, что человек и так слегка теряется, а тут ещё если грузануть его большим кодом - вообще капец. Но по этой теме поступило несколько предложений, пусть выбирает, что ему лучше. Форум же
![]() 4 000 000 значений считывал 15 секунд. Не фонтан. Заявленые 40 000 - моментально. Последний раз редактировалось BBBCat, 15.03.2013 в 00:19. |
#21
|
|||
|
|||
![]() Выгрузка в StringGrid это вообще второстепенная задача, которую можно исключить, мне надо загружать в динамический массив такова вида :
файл 10 10 1 2 3 ... 100 где файл - первая строка с названием 10 10 - это размеры массива 1 2 3 .. 100 - это значения загружаемые в массив ну это я беру просто для теста,а выгрузка в StringGrid это чисто чтобы проверить правильность загрузки, код который кинул господин Страдалецъ в принципе все делает нормально но пишет все в одномерный массив. |
#22
|
||||
|
||||
![]() ИМХО, тема раскрыта полностью. Пошли повторы и так сказать, триторы. В массиве[x, y] x это кол-во строк в файле, а y - данные в самой строке, идущие через пробел друг за другом. Считывание через ReadLn есть, парсинг тоже, остаётся лишь это всё соединить. end.
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |