Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Парочка вопросов, про Memo и StringGrid 
:(
    Опции темы
Aannttoonn
Дата 7.12.2005, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Парочка вопросов. Заранее спасибо.
1. Моно ли в поле Memo обращаться к отдельной букве? Если нет то как считать код с файла,
например txt-ишного, и, взависимости от того что там, что-то делать?
2. Как в StrinGrid дать возможность регулировать её размер пользователю.
Возможно лучше открыть таблицу в новом окне, но как?
PM MAIL ICQ   Вверх
_hunter
Дата 7.12.2005, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



1: Memo->Lines->Text[index]
2: поставь Align в alClient


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Aannttoonn
Дата 7.12.2005, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



1.Написал вот такую штуку для заполнения таблицы, где \n конец строки,а }- конец столбца
и выдаёт при заполнении ошибку, указывая на dstring.h. Я думаю ошибка где-то здесь
int i=0,j=0; char q[100];
for(i=0;i<kol_str;i++)
{
while((q[a]!='\n') || (j<kol_stol))
{
while(q[a]!='}') q[a]=Memo1->Lines->Text[a++];
StringGrid1->Cells[i][j]=q;
j++; a++;
}
}
2. Спасибо, просто у меня ни книг, ни чо нету по Билдеру, приходится тыкать куда попало. Одного знакомого уже достал спрашивать вот и решил в инет заглянуть.
PM MAIL ICQ   Вверх
_hunter
Дата 7.12.2005, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



не знаю что такое a ( объявления нет ) и чему оно равно, но скорее всего равно оно 0 ( в начальный момент ) а индексация у AnsiString идет с 1


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Aannttoonn
Дата 7.12.2005, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Понятно. Теперь нашёл ещё одну ошибку, но думаю справлюсь. smile smile smile
PM MAIL ICQ   Вверх
sexton
Дата 8.12.2005, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sexton=Пономарь (eng)
**


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

Репутация: 5
Всего: 9



Aannttoonn, в качестве спасательного круга могу дать книжку Архангельского (или если есть возможность скачай сам).
PM MAIL WWW ICQ   Вверх
Aannttoonn
Дата 8.12.2005, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Возможности, всмысле денег, нету. Но я очень хочу. Слышал что это самая толковая книга по Борланду. Можешь кинуть на [email protected] пожалуйста если есть электронный вариант?(или где найти)
PM MAIL ICQ   Вверх
Aannttoonn
Дата 8.12.2005, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Большое спасибо. smile Качаю. smile Потом буду читать. smile Круто! Ещё раз спасибо.
PM MAIL ICQ   Вверх
Aannttoonn
Дата 9.12.2005, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Смотрите пишу простую программу:

void __fastcall TForm1::Button1Click(TObject *Sender)
{

int o=1;
OpenDialog1->Execute();
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
do Memo2->Lines->Text[o]=Memo1->Lines->Text[o++];
while(Memo1->Lines->Text[o]!='}');
}

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

sexton-с моей почты, блин, не качаются учебники, пишет докачка не поддерживается. Одно расстройство с этим Билдером.
PM MAIL ICQ   Вверх
_hunter
Дата 9.12.2005, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



а не проще ли найти первое вхождение:
int pos = Memo1->Lines->Text.Pos('}');
а потом добавить этот текст:
Memo2->Lines->Add(Memo1->Lines->Text.SubStr(1, pos));


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
sexton
Дата 9.12.2005, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sexton=Пономарь (eng)
**


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

Репутация: 5
Всего: 9



Найди книжку в инете и скачай, ссылки на форуме есть.
PM MAIL WWW ICQ   Вверх
Aannttoonn
Дата 12.12.2005, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Жуткий глюк или чё. Пишу
float a=0.0001;
Edit1->Text=a;
Выводит в Edit1:
9,99999974737875E-5
Объясните кто знает.
PM MAIL ICQ   Вверх
sexton
Дата 13.12.2005, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sexton=Пономарь (eng)
**


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

Репутация: 5
Всего: 9



FloatToStr(a) тебе в руки
PM MAIL WWW ICQ   Вверх
Aannttoonn
Дата 13.12.2005, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Пробовал. Не катит.
Добавлено @ 13:07
hunter-
Memo2->Lines->Add(Memo1->Lines->Text.SubStr(1, pos));
означает типа вывести текст до первого нахождения '}'
или зачем тогда единица. И как сделать вывод текста от первого до второго вхождения. Спасибо!
PM MAIL ICQ   Вверх
_hunter
Дата 13.12.2005, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



Цитата
означает типа вывести текст до первого нахождения '}'

да.
Цитата
И как сделать вывод текста от первого до второго вхождения.

предварительно удалить текст до первого вхождения


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Aannttoonn
Дата 13.12.2005, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Весело. Попробую.
PM MAIL ICQ   Вверх
Aannttoonn
Дата 13.12.2005, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Помоему функции StrToFlot и FloatToStr сдецл глючные.
PM MAIL ICQ   Вверх
Neitron
Дата 14.12.2005, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 3.10.2005
Где: Москва

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



А как ты хотел? smile



--------------------
Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей.
Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ
PM MAIL   Вверх
Aannttoonn
Дата 15.12.2005, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Я хотел очень точно считать,а они, понимаешь ли, правильно не работают когда числа очень маленькие. Вот не знаю теперь как переводить из Str во Float.
PM MAIL ICQ   Вверх
Vyacheslav
Дата 15.12.2005, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 47
Всего: 59



Цитата(Aannttoonn @ 13.12.2005, 19:37)
Помоему функции StrToFlot и FloatToStr сдецл глючные.

Господа. А что Вы хотели? Чем простите, отличаются два числа?
0.0001 и 9,99999974737875E-5. Вы машине хотя бы то скажите как вам нужно выводить
Код

float a=0.0001;
Edit1->Text=Format("%.4f", ARRAYOFCONST((a)) );
Edit2->Text=AnsiString::FloatToStrF( a, ffFixed, 10, 4)





--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Aannttoonn
Дата 15.12.2005, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



А как считать a с Edit1
PM MAIL ICQ   Вверх
Vyacheslav
Дата 15.12.2005, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 47
Всего: 59



Код

float a = Edit1->Text.ToDouble();




--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Aannttoonn
Дата 16.12.2005, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Vyacheslav не получается!
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   float a = Edit1->Text.ToDouble();
   Edit1->Text=Format("%.4f", ARRAYOFCONST((a)) );
   if(a==0.001) Edit2->Text="Õîðîøî";
    else Edit2->Text="Ìàìà";
   a=a++;
   Edit3->Text=AnsiString::FloatToStrF( a, ffFixed, 10, 10);
}


Это сообщение отредактировал(а) Aannttoonn - 16.12.2005, 22:11
PM MAIL ICQ   Вверх
Vyacheslav
Дата 19.12.2005, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 47
Всего: 59



Кто Вас учил так сравнивать float? Вы можете только проверить, что два числа равны друг другу с определенной прогрешностью. Это же не целые числа
Хотя бы так, что ли
Код

if(  SameValue(a, float(0.001)  ) 

Это азы, которые надо знать при решении в численном виде. А так же, что если Вы ввели число 0.001, то оно в компьютере будет храниться только только, число равное ему с определенной погрешностью

ВниманиеПодправил выражение сравнения float. В Builder 6 появились специальные функции для таких целей


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Aannttoonn
Дата 19.12.2005, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Но мне ведь изестно это число точно. Как мне следить за тем что комп его также точно понимает. Просто я делаю лабораторные и мне нужны только точные значения или ну с погрешностью там до 0,000000001.
PM MAIL ICQ   Вверх
Vyacheslav
Дата 20.12.2005, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 47
Всего: 59



Вы не доверяете компьютеру? Как то я работал со сотрудницей, которая в свои обязанности включила проверку правильности расчета на компьютере smile
А если Вам нужна большая точность, то Вы должны то надо тспользовать соответствующие приемы. Например вместо float, использовать double( long double) . Или даже скорее всего не long double, а BCD ( TBcd ).


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
Aannttoonn
Дата 23.12.2005, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Как я понял чтобы в Memo обращаться к какой-нибудь строке надо либо заранее задать кол-во строк в Memo. Либо после заполнения одной строки организовывать переход на другую - как это сделать (когда пишу ”\n” остаются какие-то чёрые полоски).
PM MAIL ICQ   Вверх
_hunter
Дата 23.12.2005, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 24
Всего: 98



можно и так Lines->Add()


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
abrekos
Дата 23.12.2005, 13:56 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Aannttoonn @ 12.12.2005, 21:41)
Жуткий глюк или чё. Пишу
float a=0.0001;
Edit1->Text=a;
Выводит в Edit1:
9,99999974737875E-5
Объясните кто знает.

Используй в таких случаях double smile
  Вверх
Aannttoonn
Дата 24.12.2005, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 7.12.2005
Где: г. Елабуга

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



Как в Memo удалять символы до какого-нибудь знака?
PM MAIL ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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