Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 80
от 04.04.2005, 18:50

Администратор:Калашников О.А.
В номере:Вопросов: 4, Ответов: 11


Вопрос № 18963: Hi: Буду краток. Как прочитать файл c http:////www.site.ru//getfile в C++ Builder?...
Вопрос № 18997: Приветствую всех экспертов. Я пытаюсь в программке на Visual C++ .NET (Windows Forms) открыть файл .doc и считать его содержимое построчно, но этого не получается (в переменную пишется мусор), видимо, в связи с тем, что я тупо пытаюсь считать данные ...
Вопрос № 18999: Ноуаеп аъек! Я келз луичи ле нмйябчепъз ъочалупщ ъмдеотукме 2 юяреома, ъмдеотчшус ъукамйщлье ъпомиу. Ичи ыпм кмтлм ъдейчпщ?...
Вопрос № 19002: Хеллоу! Мне надо прочитать значение типа DWORD из реестра (см. прилож.), но при сборке возникает следующая ошибка: error C2664: 'ATL::CRegKey::QueryDWORDValue' : cannot convert parameter 2 from 'DWORD' to 'DWORD &'. В чём тут дело? Помо...

Вопрос № 18963
Hi: Буду краток. Как прочитать файл c http:////www.site.ru//getfile в C++ Builder?
Отправлен: 29.03.2005, 20:31
Вопрос задал: Pushkin (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: Voituk Alexander
Здравствуйте, Pushkin!
Посмотри компонент на вкладке FastNet. Он называется NMHTTP.
по кнопке вызывай
void __fastcall TForm1::Button1Click(TObject *Sender)
{
NMHTTP1->Get("http:////www.site.ru//getfile.txt");
}
и назначь этому компоненту событие OnPacketRecvd.
void __fastcall TForm1::NMHTTP1PacketRecvd(TObject *Sender)
{
//в Body будет твой файл
Label2->Caption = NMHTTP1->Body;
}
Ответ отправил: Voituk Alexander (статус: 6-ой класс)
Отправлен: 30.03.2005, 14:37
Оценка за ответ: 5
Комментарий оценки:
Thanks


Вопрос № 18997
Приветствую всех экспертов. Я пытаюсь в программке на Visual C++ .NET (Windows Forms) открыть файл .doc и считать его содержимое построчно, но этого не получается (в переменную пишется мусор), видимо, в связи с тем, что я тупо пытаюсь считать данные от начала файла. В случае с txt-файлом и применяя метод ReadLine класса StreamReader строка считывается до первого пробела, это меня устраивает. Но надо добиться того же от doc-файла. Подскажите пожалуйста, как правильно открыть файл .doc и считывать оттуда строки. Кусок кода прилагается. С Уважением, Challenger.

Приложение:

Отправлен: 30.03.2005, 15:00
Вопрос задал: Challenger (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: Malish
Здравствуйте, Challenger!
Открывать файл .doc попробуй посимвольно. Разница между txt и doc в том что в txt один символ 1 байт а в doc - 2 байта. Поэтому у тебя и показывает козяблики (скорее всего).
Ответ отправил: Malish (статус: 5-ый класс)
Отправлен: 30.03.2005, 22:29

Отвечает: Raptor1
Здравствуйте, Challenger!
Если имеется в виду файл формата MSWord то для работы с ним построчно Ваш метод не подойдет, он внутри не текстовый. Для построчной обработки следует использовать OLE.
Ответ отправил: Raptor1 (статус: 1-ый класс)
Отправлен: 30.03.2005, 22:43


Вопрос № 18999
Ноуаеп аъек! Я келз луичи ле нмйябчепъз ъочалупщ ъмдеотукме 2 юяреома, ъмдеотчшус ъукамйщлье ъпомиу. Ичи ыпм кмтлм ъдейчпщ?
Отправлен: 30.03.2005, 15:30
Вопрос задал: SerJ1 (статус: Посетитель)
Всего ответов отправлено: 3

Отвечает: vitya
Здравствуйте, SerJ1!
Неверное memcmp или по симьвольно ручками.
Ответ отправил: vitya (статус: Профессор)
Отправлен: 30.03.2005, 16:50
Оценка за ответ: 4
Комментарий оценки:
Не... Посимвольно ручками... Ленивый я. А вот memcmp - то что надо. Thanks.

Отвечает: Doroshev DV
Здравствуйте, SerJ1!
Это легко делается с помощью функции strcmp(). Её прототип находится в заголовочном файле string.h:
int strcmp(const char *str1, const char *str2).
Функция возвращает:
меньше 0, если str1 меньше, чем str2
0, если str1 равна str2
больше 0, если str1 больше, чем str2
Например:
________________
<pre>
#include <stdio.h>
#include <string.h>
int main(void)
{
char passwd[10] = "robot";
char input[10];
printf("Введите пароль: ");
scanf("%s", input);
if(!strcmp(passwd, input)) { // если input = passwd
printf("Пароль верен! ");
return 0;
} else
printf("Неверный пароль!");
return 1;
}</pre>
Ответ отправил: Doroshev DV (статус: 5-ый класс)
Отправлен: 30.03.2005, 17:41

Отвечает: Raptor1
Здравствуйте, SerJ1!
Обычный strcmp или lstrcmp если в каждом буфере одна строка заканчивающаяся нулем, а что не получается.
Ответ отправил: Raptor1 (статус: 1-ый класс)
Отправлен: 30.03.2005, 22:44


Вопрос № 19002
Хеллоу!
Мне надо прочитать значение типа DWORD из реестра (см. прилож.), но при сборке возникает следующая ошибка:
error C2664: 'ATL::CRegKey::QueryDWORDValue' : cannot convert parameter 2 from 'DWORD' to 'DWORD &'.
В чём тут дело? Помогите plz!

Приложение:

Отправлен: 30.03.2005, 17:25
Вопрос задал: SerJ1 (статус: Посетитель)
Всего ответов отправлено: 5

Отвечает: vitya
Здравствуйте, SerJ1!
надо просто написать Start в вызове функции Query.
Ответ отправил: vitya (статус: Профессор)
Отправлен: 30.03.2005, 17:34

Отвечает: Doroshev DV
Здравствуйте, SerJ1!
По-видимому, в предпоследней строке перед start не должен стоять &.
Ответ отправил: Doroshev DV (статус: 5-ый класс)
Отправлен: 30.03.2005, 19:53

Отвечает: Raptor1
Здравствуйте, SerJ1!
По видимому (DWORD)&start надо заменить просто на start, о чем радостно сообщает компилятор
Ответ отправил: Raptor1 (статус: 1-ый класс)
Отправлен: 30.03.2005, 22:44

Отвечает: DiGiT
Здравствуйте, SerJ1!
Вообще говоря дело в том, что (DWORD)&start это образно говоря (DWORD)&((DWORD)&start). А операция получения адреса не определена к rvalue. Подробно почитайте о передаче параметров через ссылку.
Ответ отправил: DiGiT (статус: 6-ой класс)
Отправлен: 31.03.2005, 09:36

Отвечает: Bob Johnson
Здравствуйте, SerJ1!
Так ты же (зачем-то!) написал (DWORD)&start, нужно было просто start...

* EMan2.0: ---===*** Debug mode ***===---

Ответ отправил: Bob Johnson (статус: Академик)
Отправлен: 01.04.2005, 22:54


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться

В избранное