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

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


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

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

Выпуск № 415
от 23.05.2006, 13:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 331, Экспертов: 47
В номере:Вопросов: 7, Ответов: 11


Вопрос № 43335: Помогите перевести код в приложении, написанный на Дельфи, в код на CBuilder. pFIBDatabase1 - компонент firebird....
Вопрос № 43339: День добрый! Треугольник Паскаля. Код в приложении. Не пойму, где закралась ошибка (2-ая строка не выводится). В Гугл не посылать. Был,видел. Сам хочу. Благодарю за внимание. ...
Вопрос № 43380: Простите новичку. Подскажите || покажите pls, как в стандартных потоках ifstream , ofstream в файлах работь не с char типами, а допустим с int или массивами. где ни читал везде с буквами и строками....
Вопрос № 43445: Доброго времени суток Гуру!!! Вопрос может ламерский ,но ни как не могу додуматься. Не могу построить цикл для чтения директории , в которой находятся текстовые файлы.Надо по очереди прочитать файлы , сделать выборку определенного сл...
Вопрос № 43448: Здравствуйте, господа эксперты, хелп плиз. есть сетка, домен, win2k server, win2k pro sp4. на сервере расшарена папка для пользовательских документов, нужно написать приложение/службу которое будет отслеживать когда и кем документ (из этой папки)...
Вопрос № 43457: Добрый день! вопрос такого плана написал dll на C# все нормально, без проблем пользую на С++, пока возвращаемые значения были int.... но как только мне понадобилось изменить функцию, что бы она стала выдаать строку, сразу выдала ошиб...
Вопрос № 43464: Здравствуйте эксперты! В задаче под Borland C 3.1 меню с псевдографикой. Я описал пару ф-й (загрузка и просмотр) я хочу чтоб вы мне обьяснили как увязать координаты расположения курсора на опр. строчке и в соответствии с выполняемой функцией ..

Вопрос № 43.335
Помогите перевести код в приложении, написанный на Дельфи, в код на CBuilder. pFIBDatabase1 - компонент firebird.

Приложение:

Отправлен: 17.05.2006, 14:00
Вопрос задал: Rusland (статус: Специалист)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Santana
Здравствуйте, Rusland! может так
for (i=0; i < pFIBDatabase1.TransactionCount; i++)
{
if TpFIBTransaction(pFIBDatabase1->Transactions[i])->InTransaction then
TpFIBTransaction(pFIBDatabase1->Transactions[i])->Rollback;
};

pFIBDatabase1->CloseDataSets;
pFIBDatabase1->Close;
Ответ отправил: Santana (статус: 2-ой класс)
Ответ отправлен: 17.05.2006, 14:14
Оценка за ответ: 4
Комментарий оценки:
К сожалению нет. В строчке pFIBDatabase1->Transactions[i] ошибка: [C++ Error] main.cpp(132): E2288 Pointer to structure required on left side of -> or ->*


Вопрос № 43.339
День добрый!

Треугольник Паскаля. Код в приложении.
Не пойму, где закралась ошибка (2-ая строка не выводится).
В Гугл не посылать. Был,видел. Сам хочу.
Благодарю за внимание.

Приложение:

Отправлен: 17.05.2006, 14:12
Вопрос задал: Евсеев В. Н. (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 8)

Отвечает: Егоров Александр Санкт-Петербург
Здравствуйте, Евсеев В. Н.!
Попробуйте после scanf вставить строчку
fflush(stdin);

Это функция очистки буфера ввода.
Ответ отправил: Егоров Александр Санкт-Петербург (статус: 2-ой класс)
Ответ отправлен: 17.05.2006, 15:54
Оценка за ответ: 5

Отвечает: Zitz
Здравствуйте, Евсеев В. Н.!

Ошибка в алгоритме?
Я подозреваю что нужно так ->

Приложение:

---------
Успех неизбежен

Ответ отправил: Zitz (статус: 10-ый класс)
Ответ отправлен: 17.05.2006, 15:59
Оценка за ответ: 5
Комментарий оценки:
именно так


Вопрос № 43.380
Простите новичку.
Подскажите || покажите pls, как в стандартных потоках ifstream , ofstream в файлах работь не с char типами,
а допустим с int или массивами.
где ни читал везде с буквами и строками.
Отправлен: 17.05.2006, 18:56
Вопрос задал: Kos (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Timoshin A.B.
Здравствуйте, Kos!
Также как и строки.
///////////////////////////
создаём входной поток in_f_stream;
int a;
in_f_stream>>a;
из потока считывается первое целое.
//////////////////////////
---------
Если кого-то коробит моя манера общения, я хотел бы получать ОС.
Ответ отправил: Timoshin A.B. (статус: Студент)
Ответ отправлен: 17.05.2006, 19:27
Оценка за ответ: 4

Отвечает: RedDevil
Здравствуйте, Kos!
Идея не очень сложная. Необходимо преобразовывать ваш тик к char * и указывать размер типа. Вот, например для типа int.
#include <fstream.h>
#include <conio.h>
#include <iostream.h>

void main() {
int num = 4096;

ofstream out("fstream.txt");

out.write((char*)&num, sizeof(int));

out.close();

num = 0;
cout<<"Num = "<<num<<endl;

ifstream in("fstream.txt");

in.read((char*)&num, sizeof(int));

in.close();

cout<<"Num = "<<num<<endl;
getch();
}

Структура записывается и читается таким же способом. Вот простой набросок примера:
struct Person {
char sName[30];
int age;
int sex;
};

Ее запись и чтение будет такая же, как и int.
Pesron pers;
// заполняем pers
out.write((char*)&pers, sizeof(Person));
// считываем pers
in.read((char*)&pers, sizeof(Person));
---------
Есть 10 типов людей: те, кто знаком с двоичной системой, и те, кто нет.
Ответ отправил: RedDevil (статус: Студент)
Ответ отправлен: 18.05.2006, 08:23
Оценка за ответ: 5
Комментарий оценки:
спасибо, что-то подобное подозревал, теперь буду руку набивать


Вопрос № 43.445
Доброго времени суток Гуру!!!
Вопрос может ламерский ,но ни как не могу додуматься.
Не могу построить цикл для чтения директории , в которой
находятся текстовые файлы.Надо по очереди прочитать
файлы , сделать выборку определенного слова. Если это слово есть
записать его в другой файл и читать дальше до окончания файлов
в директории.Помогите плз.с кодом как это реализовать.

Буду рад любым ответам. Спасибо!
Отправлен: 18.05.2006, 11:02
Вопрос задал: Bobsa (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Zitz
Здравствуйте, Bobsa!

Прочитать все файлы из дирректории так ->
А в цикл добавить вызов процедуры, которая что-то делает с вашими файлами...

Приложение:

---------
Успех неизбежен

Ответ отправил: Zitz (статус: 10-ый класс)
Ответ отправлен: 18.05.2006, 12:39

Отвечает: Sergijj
Здравствуйте, Bobsa!

Извините, но Вы не указали операционную систему, под которой Вам требуется код.
Если Вам нужно под DOS, тогда используйте функции:
findfirst();// Найти первый файл по маске
findnext();// Найти каждый следующий файл по такой же маске.

Пример см. в приложении...

Если Вам нужно под *nix (ну типа FreeBSD, QNX, Linux, и т.д.), то используйте функции:
opendir();// Открыть каталог
readdir();// Прочитать каталог пофайлово
closedir();// Закрыть каталог

Пример, опять же, см. в приложении...

А вот под всякие Win я уж и не помню как...:) Ищите что-нибудь похожее у них в документации...;-)

Соответственно алгоритм поиска по файлам в общем виде такой:
1. Ищем файл (с помощью функций, указанных выше), если не найден - п.6
2. Если маска файла не задаётся в стандартных процедурах, то проверяем на соответствие маске. Если не соответствует, то п.1
3. Читаем файл в буфер (open(), fopen(), и т.д.) (если файл большой, а память сегментирована, то здесь будет начинаться цикл поблочного чтения, то же самое, если читаете файл по строкам (gets()))
4. Ищем в этом буфере нужную строку (или набор символов, что одно и то же) (с помощью алгоритмов, позаимствованных у Кнута или Вирта, или с помощью стандартной функции
char *strstr(const char *s1, const char *s2)
)
5. Если строка найдена - делаем с ней необходимые действия, если нет - п.3 или п.1, смотря оконцился ли у нас цикл поблокового чтения или нет.
6. Удаление буфера, очистка памяти, закрытие ресурсов.

Удачи!

Приложение:

---------
Стучитесь! И Вас откопают...

Ответ отправил: Sergijj (статус: 3-ий класс)
Ответ отправлен: 18.05.2006, 16:54
Оценка за ответ: 5


Вопрос № 43.448
Здравствуйте, господа эксперты, хелп плиз.
есть сетка, домен, win2k server, win2k pro sp4. на сервере расшарена папка для пользовательских документов, нужно написать приложение/службу которое будет отслеживать когда и кем документ (из этой папки) открывался и закрывался, возможно нужно будет фиксировать изменение размера файла. стандартные средства аудита не интересуют.
как подобное реализовать не имею понятия, направьте блуждающего в потемках :)
Отправлен: 18.05.2006, 11:18
Вопрос задал: Степанюк Александр (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Santana
Здравствуйте, Степанюк Александр!
Есть функция FindFirstChangeNotification и иже с нею читай по ней доку (она отслеживает изменения файловой структуры, но тока под Вынь и кажется тока под НТФС)
Ответ отправил: Santana (статус: 2-ой класс)
Ответ отправлен: 18.05.2006, 11:43


Вопрос № 43.457
Добрый день!
вопрос такого плана написал dll на C#
все нормально, без проблем пользую на С++, пока возвращаемые значения
были int....
но как только мне понадобилось изменить функцию, что бы она стала выдаать строку, сразу выдала ошибку:

error C2440: 'type cast' : cannot convert from 'System::String __gc *' to 'char *'
Cannot convert a managed type to an unmanaged type

каким образом мне можно прочитать строку из dll написанной на C#?
Отправлен: 18.05.2006, 12:11
Вопрос задал: Wert69 (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Santana
Здравствуйте, Wert69!
а ты принимай не чаром а AnsiString-ом
Ответ отправил: Santana (статус: 2-ой класс)
Ответ отправлен: 18.05.2006, 12:25

Отвечает: X-MAN
Здравствуйте, Wert69!
Я боюсь что никак!!!
Класс Sting - это reference type в C#. Это значит что ф-ция которая возвращает String на самом деле возвращает указатель на класс String, который скорее всего будет удалён сборщиком мусора, причём в любое время когда ему захочется. Да и вообще, managed to unmanaged? Мне кажется это нереальным. Никогда нигде не слышал про это и сам не сталкивался. Бросте эту затею!!!
---------
Оптимисты начинают день с имунеле, реалисты - с кофе, а пессимисты - с водки!
Ответ отправил: X-MAN (статус: 6-ой класс)
Ответ отправлен: 18.05.2006, 19:50


Вопрос № 43.464
Здравствуйте эксперты!
В задаче под Borland C 3.1 меню с псевдографикой. Я описал пару ф-й (загрузка и просмотр) я хочу чтоб вы мне обьяснили как увязать координаты расположения курсора на опр. строчке и в соответствии с выполняемой функцией
Спасибо!

Приложение:

Отправлен: 18.05.2006, 12:52
Вопрос задал: W4rmonger (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Sergijj
Здравствуйте, W4rmonger!

В общем виде, см. приложение...

Т.е.:
1. Отслеживаешь нажатие <Enter>
2. Смотришь, где в это время курсор
3. Соответственно позиции курсора, вызываешь нужную функцию...
4. Возвращаешься в менюху, на отслеживание клавиш...

Удaчи!

Приложение:

---------
Стучитесь! И Вас откопают...

Ответ отправил: Sergijj (статус: 3-ий класс)
Ответ отправлен: 19.05.2006, 09:17


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.32 от 03.05.2006
Яндекс Rambler's Top100

В избранное