Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];

Вниз

Сохранение текста в StrinGrid.   Найти похожие ветки 

 
Punko   (2011-05-16 22:07) [0]

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


 
MBo ©   (2011-05-16 22:20) [1]

считать файл в TStringList
Дальше его свойства помогут


 
Punko   (2011-05-16 22:28) [2]

переменная типа TStringList - это переменная, посредством которой будет текст экспортироваться из файла в таблицу, я правильно вас понял?
И ещё, я зарегистрировался на сайте, а как войти под своим ником?:)


 
MBo ©   (2011-05-16 22:44) [3]


> переменная типа TStringList - это переменная, посредством
> которой будет текст экспортироваться из файла в таблицу,
>  я правильно вас понял?

Да, это промежуточное хранилище.
Сразу будет понятно, сколько строк нужно сделать в гриде.
После обработки всех строк (если количество чисел в них может быть разным) выяснится, сколько столбцов понадобится


 
MBo ©   (2011-05-16 22:46) [4]


> а как войти под своим ником?:)

Входа на сайт нет, только в форме вопроса или ответа отмечаешься (и это в куках запоминается)


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

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


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


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

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


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

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


 
Anatoly Podgoretsky ©   (2011-05-16 23:56) [8]

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

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


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

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

CommaText


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


> CommaText

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


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

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


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


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

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


 
Punko   (2011-05-17 01:17) [13]

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


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


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

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


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

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


 
MBo ©   (2011-05-17 08:17) [16]


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


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


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


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

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


 
Anatoly Podgoretsky ©   (2011-05-17 08:57) [18]


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

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

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

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


 
Anatoly Podgoretsky ©   (2011-05-17 08:59) [19]


> Punko   (17.05.11 01:37) [15]

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


 
Anatoly Podgoretsky ©   (2011-05-17 09:01) [20]


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

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


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

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

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


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

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


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

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

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


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

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



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.08.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.005 c
15-1304994305
IPranker
2011-05-10 06:25
2011.08.28
Скачать видео со станицы.


2-1305523776
ruslan_as
2011-05-16 09:29
2011.08.28
Dev Express cxGrid - как включить итоги


4-1250099436
alvonen
2009-08-12 21:50
2011.08.28
как программно получить номер сетевой карты компьютера?


2-1305239422
Германн
2011-05-13 02:30
2011.08.28
Тип AniString


15-1304540995
Юрий
2011-05-05 00:29
2011.08.28
С днем рождения ! 5 мая 2011 четверг





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский