Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Memo в CBuilder 
:(
    Опции темы
Гость_Alex
Дата 26.7.2004, 11:39 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите пожалуйста, сил больше нет

Как в CBuilder отобразить текст в мемо считанный из файла в бинарном формате.
Делаю так:

int fh;
fh = open( "C:/Aaa.dat", O_RDONLY | O_BINARY );

char *pBufRead = new char[10000];
read( fh, pBufRead, nMaxBufLen );

char aa[70];
int vLen = 70;
for (int i = 0; i < vLen; i++) { aa[i] = (char) pBufRead[i]; }

Memo1->Lines->Add(aa);

и в мемо передается только первый символ.
Очень хотелось бы увидеть строку из 70 символов но ничего не получается.



  Вверх
zss
Дата 26.7.2004, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



попробуй

...->Font->Style = "Symbol";

Это сообщение отредактировал(а) zss - 26.7.2004, 12:38
PM MAIL ICQ   Вверх
Гость_Alex
Дата 26.7.2004, 12:45 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











...->Font->Style = "Symbol";

Поясни пожалуйста.


  Вверх
zss
Дата 26.7.2004, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата
...->Font->Style = "Symbol";

Поясни пожалуйста.

Покажи кусок массива, в который ты прочитал из файла
PM MAIL ICQ   Вверх
gray_k
Дата 26.7.2004, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код
Memo1->Lines->Add( AnsiString(aa).SetLength(70) );



--------------------
С уважением.
Gray.
PM MAIL   Вверх
Guest
Дата 26.7.2004, 13:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











В смысле значения показать?
В каком види символьном или бинарном.

Вообще то вопрос в том что я не могу в мемо вывести строкой эти значения, вот к примеру если изменить так

for (int i = 0; i < vLen; i++)
{
aa[i] = (char) pBufRead[i];
Memo1->Lines->Add(aa[i]);
}

все выводится но только каждый символ на новой строке, примерно так

M
u
¨
<
K
»
}

а нужно так - Mu¨<K»}


  Вверх
Конструктор
Дата 26.7.2004, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Проверь чтобы у тебя в буфере сразу после первой буквы не было нулевого символа, а то он (АнсиСтринг) подумает, что это такая короткая строка. Попробуй завести временную переменную типа AnsiString и присвой ей значение строки aa. Посмотри что там полуичлось внутри на всякий случай. Затем передай этот AnsiString в функцию Add.

PM MAIL WWW ICQ   Вверх
Guest
Дата 26.7.2004, 16:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата
Проверь чтобы у тебя в буфере сразу после первой буквы не было нулевого символа, а то он (АнсиСтринг) подумает, что это такая короткая строка. Попробуй завести временную переменную типа AnsiString и присвой ей значение строки aa. Посмотри что там полуичлось внутри на всякий случай. Затем передай этот AnsiString в функцию Add.

Я пробовал завести временную переменную типа AnsiString и присвоить ей значение аа, результат тот же
там в строке действительно второй символ нуль и когда я кидаю его в мемо (Add) то второй символ воспринимается наверное как конец строки. Как это избежать. thumbs-up.gif
  Вверх
zss
Дата 26.7.2004, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



как я и говорил

...->Font->Style = "Symbol" - вывод непечатанных символов (выводи все что угодно)

Это сообщение отредактировал(а) zss - 26.7.2004, 16:27
PM MAIL ICQ   Вверх
Alex_G
Дата 26.7.2004, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



можно подробнее или пример какой, а то чо то я не пойму как это сделать:

...->Font->Style = "Symbol" - вывод непечатанных символов (выводи все что угодно)




Это сообщение отредактировал(а) Alex_G - 26.7.2004, 16:48
PM MAIL ICQ   Вверх
zss
Дата 26.7.2004, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Извини я ошибся - не Style, а Name

перед выводом выстави шрифт
Код

Memo->Font->Name = "Simbol";



PM MAIL ICQ   Вверх
Alex_G
Дата 26.7.2004, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Попробовал Memo1->Font->Name = "Simbol";
Результат тот же - выводит один символ.
Конструктор прав. Там второй символ 0 и поэтому после второго символа ничего не выводит.
Кто знает как напечатать символ 0?
PM MAIL ICQ   Вверх
NiJazz
Дата 26.7.2004, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Jazz coder
****


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

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



А можно Memo->Lines->LoadFromFile(sFileName)
Тут файл должен быть "красивым".
PM MAIL   Вверх
zss
Дата 27.7.2004, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



тогда если это 0, то
Код

for(int k = 0; k < sizeof(aa); k++){
   if (aa[k] == 0) aa[k] = ' ';
}


если же тебе не критично значение нуля, то можешь преобразовать его в O
Код

for(int k = 0; k < sizeof(aa); k++){
   if (aa[k] == 0) aa[k] = 'O';
}


PM MAIL ICQ   Вверх
_vitusik
Дата 2.8.2004, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



попробуй не

aa[i] = (char) pBufRead[i];
Memo1->Lines->Add(aa[i]);

а

aa[i] = (char) pBufRead[i];
Memo1->Tex[i]=aa[i];

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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