![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение текста в StrinGrid. [XP]
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? С помощью цикла?
Извините за глупые вопросы, но не нашёл этого в справочнике. Спасибо!