Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение текста в StrinGrid. [XP]


Страницы:   1 2

Punko ©   (2011-05-16 22:07:00) 

Добрый вечер. Собственно, сабж, но есть трудности.
1. не известно количество строк и столбцов
2. файл формата :
шапка ( состоит из текстовых данных) (первая строчка)
остальные строчки - числа ( положительные и отрицательные), которые надо будет потом обработать.
Трудность в том, как определить кол-во строк и столбцов.
Заранее благодарю, извините если, неточно описал проблему.


Punko   (2011-05-17 22:07:00) [1]

Вот тупень, точно! Спасибо!!!!!!!


Германн   (2011-05-17 22:05:00) [2]

Какой еще else?
else может быть связан только с операторами if или case.

Кроме того строка индексируется с 1, а не с 0.


Punko   (2011-05-17 21:50:00) [3]

в конце цикла я завершил его end'ом.


Punko   (2011-05-17 21:49:00) [4]

немного разобрался и решил использовать RealLn.
Но выдаёт  ошибку, а в чём она - не пойму.
for i := 0 to Length(s) do
 begin
   while copy(s,i,1)=prob do
   showmessage('пробел')
   else do
   begin

Говорит, что ожидается end перед else.
Если вывод сообщения поставить меж begin и end, толку не будет.


Anatoly Podgoretsky   (2011-05-17 09:01:00) [5]


> Но тогда не понятен ваш вопрос "какое свойство для определения
> количества столбцов?".

А это просто противоречит ранее приведеной информации, у него фиксированое количество "колонок" - их восемь, он просто считать не умеет. Кроме того ReadLn может работать и с неизвестным, но ограниченым их количеством, вполне в файле может быть и меньше восьми, ничего страшного для RealLn нет, это мощный, недооцененый инструмент.


Anatoly Podgoretsky   (2011-05-17 08:59:00) [6]


> Punko   (17.05.11 01:37) [15]

Количество входных файлов не играет роли, может быть сколько угодно.


Anatoly Podgoretsky   (2011-05-17 08:57:00) [7]


> Так проще или же всё так выбрать TStringList?

Проще и менее накладнее текстовые файлы

> Числа разделены 7 (семью) пробелами

Это означает восемь "колонок", а так как это фиксировано, то никакой парсер не нужен, все это может сделать сам ReadLn одним махом.


Anatoly Podgoretsky   (2011-05-17 08:55:00) [8]


> на сколько я понимаю, данное свойство сохраняет весь файл
> в одну строку, а надо в виде таблицы? нет?

Нет и далеко не то.


MBo   (2011-05-17 08:17:00) [9]


> Вообще, идёт загрузка трёх разных файлов в три разных таблицы,
>  после чего есть возможность совместить их в одну большую,
>  но для этого надо привести  их к общему виду


Если это не требует взаимодействия с пользователем, то грид, возможно, совсем не нужен


Punko   (2011-05-17 01:37:00) [10]

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


Германн   (2011-05-17 01:30:00) [11]


> Punko   (17.05.11 01:17) [13]
>
> Да, под символом имелось ввиду число. Количество чисел не
> фиксировано, но ведь можно добавлять столбец при "нахождении"
> нового числа, вот так
> while pos(' ', s) >0 do begin.
> а вопрос про свойство относился к варианту использования
> TStringList, вариант с readln пришёл позжее.
>

Ну не совсем так, но принцип тот же. Искать в каждой новой строке все числа и добавлять новые столбцы, если количество чисел в строке больше чем количество столбцов. Вот только, имхо возможны "глюки", если одна и та же таблица ака TStringGrid используется несколько раз подряд для разных файлов данных.


Punko   (2011-05-17 01:17:00) [12]

Да, под символом имелось ввиду число. Количество чисел не фиксировано, но ведь можно добавлять столбец при "нахождении" нового числа, вот так
while pos(' ', s) >0 do begin.
а вопрос про свойство относился к варианту использования TStringList, вариант с readln пришёл позжее.


Германн   (2011-05-17 01:09:00) [13]


> Punko   (17.05.11 00:53) [11]
>
> Хм, а можно сделать еще так:
> с через readln считать строку, разбить на символы,каждый
> новый символ - плюсь один столбец, эти символы записать
> в ячейку таблицы

Если под термином "символ" подразумевается термин "число". И если количество чисел в строках всегда фиксировано. Тогда да. Тогда старый добрый readln самый лучший способ. Но тогда не понятен ваш вопрос "какое свойство для определения количества столбцов?".


Punko   (2011-05-17 00:53:00) [14]

Хм, а можно сделать еще так:
с через readln считать строку, разбить на символы,каждый новый символ - плюсь один столбец, эти символы записать в ячейку таблицы - создать новую строку - опять считать троку и т.д.
всё это в цикле While eof.
Так проще или же всё так выбрать TStringList?


Punko   (2011-05-17 00:12:00) [15]


> CommaText

на сколько я понимаю, данное свойство сохраняет весь файл в одну строку, а надо в виде таблицы? нет?


Anatoly Podgoretsky   (2011-05-16 23:57:00) [16]

> Punko  (16.05.2011 23:44:07)  [7]

CommaText


Anatoly Podgoretsky   (2011-05-16 23:56:00) [17]

> Punko  (16.05.2011 22:28:02)  [2]

Тогда в форме сообщения указывай свой логин и по запросу пароль


Punko   (2011-05-16 23:44:00) [18]

Числа разделены 7 (семью) пробелами и при этом первое число в строке идёт тоже после пробелов.
Пример
      1       125       7856      548
      54       584      545       7


Германн   (2011-05-16 23:35:00) [19]


> А какое свойство для определения количества столбцов?

Чем разделены числа в строке?


Punko   (2011-05-16 23:02:00) [20]

Спасибо! Подскажите еще пожалуйста, я загрузил текст  в переменную типа TStringList, далее, с помощью свойства Count присвоил количество строк StringGrid. А какое свойство для определения количества столбцов? и как распределять равномерно по ячейкам данные из TStringList? С помощью цикла?
Извините за глупые вопросы, но не нашёл этого в справочнике. Спасибо!


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо