Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Чтение из файда в CString

8.2K
03 июня 2007 года
mohito
35 / / 24.11.2005
Задача: файл содержит текст на русском и английском, необходимо прочитать этот текст в строку формата CString. Как это сделать???
320
03 июня 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: mohito
Задача: файл содержит текст на русском и английском, необходимо прочитать этот текст в строку формата CString. Как это сделать???


Ты будешь весь файл читать в одну строку ? Или может все таки необходимо организовать построчное чтение текста из файла пока не будет достигнут конец файла и вывести текст,например в текстовом поле ?

8.2K
03 июня 2007 года
mohito
35 / / 24.11.2005
Подробнее задача следующая
Есть приложение типа чат, которое принимает строку от юзера в EditControl и передает его посредствам сокетов в другое аналогичное приложение.
Есть код, который принимает из файла текст и кодирует/декодует его AES'ом.
Необходимо встроить AES в этот "псевдо чат".
Делаю так:
1. Получаю сообщение
2. Записываю его в файл sINPUT.txt
3. Записываю в файл sOUTPUT.txt длину сообщения
4. Читаю сообщение из sINPUT и подаю на вход алгоритму кодирования, результат записываю в sOUTPUT
5. читаю шифр-сообщение из sOUTPUT и передаю с сокет.
Дальше по идее должно быть в обратном порядке.
Шифр-сообщение корректно считывается в pbuf(см. код) но через сокет проходит только один символ=(((
Код:
void CSocketDlg::OnBnClickedBsend()
{
int iLen;
int iSent;
CProgressCtrl* pProg = (CProgressCtrl*) GetDlgItem(IDC_PROGRESS1);
char pbuf[1025];

//синхронизация элементов управления с переменными
UpdateData(TRUE);

//имеется ли сообщение, которое нужно послать?
if (m_strMessage != "")
{
    //получить длину сообщения
    iLen = m_strMessage.GetLength();
    //отправить сообщение
//----------------------------ШИФРОВАНИЕ-------НАЧАЛО----
       
    if (isFileWithKeyOpened) //Проверяем есть ли файл с ключем
    {
        AES_byte Key[32];
        int Nk = _read(KEYFILE,Key,33); //читаем ключ
        switch(Nk) //определяем длину ключа.
        {
            case 16:Nk = 4;break;
            case 24:Nk = 6;break;
            case 32:Nk = 8;break;
            default:return;
        }
        FillTables();
        KeyExpansion(Key,Nk);

        AES_byte ibuf[16];
        AES_byte obuf[16];
        int sOUTPUT;
        int sINPUT;
        sINPUT=open("sINPUT.txt", O_CREAT | O_RDWR | O_BINARY)
        sOUTPUT=open("sOUTPUT.txt", O_CREAT |O_RDWR | O_BINARY)
//сливаем сообщение в файл    
write(sINPUT, m_strMessage, iLen)
        long pos;
//устанавливаем позицию в начало
        pos = lseek(sINPUT, 0L, SEEK_SET);
        long InputLength = filelength(sINPUT);
        //записываем в файл длину сообщения
                write(sOUTPUT,&InputLength,4)
        for (long i=0, ii=0;i<=InputLength/16;i++,ii++)
        {
//чиатем 16 символов из файла
read(sINPUT,ibuf,16)
//СОБСТВЕННО ШИФРОВАНИЕ
Cipher(ibuf,obuf);
//Записываем 16 символов в файл
write(sOUTPUT,obuf,16)
               
        }
//----------------------------ШИФРОВАНИЕ-------КОНЕЦ-----

            long OutputLength = filelength(sOUTPUT);
            pos = lseek(sOUTPUT, 0L, SEEK_SET);
//читаем шифр-сообщение из файла         
read(sOUTPUT,pbuf,OutputLength)
            m_strAESMessage = pbuf; <---КОСЯК ТУТ
//передаем в сокет           
iSent = m_sConnectSocket.Send(m_strAESMessage OutputLength); <--И ТУТ
            close(sOUTPUT);
            close(sINPUT);
            ... остальной завершающий код
}


Код довольно сырой, главное что бы хоть как-то заработало.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог