Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MFC-файлы, Не могу скопировать содержимое файла 
:(
    Опции темы
interceptor
Дата 4.10.2005, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Кто нибудь помогите мне нужно написать прогу которая из file1.dat копирует в file2.dat
пока не встретит слово >7 символов. Я вот написал она компилится но не работает
и еще как построчно читать фаил например чтоб удалить комментарии из него на MFC
мыло:[email protected]


void CaaDlg::OnBnClickedButton1()
{
CString buffer;
CString buffer1;
CString buffer2;
int j=0;
CStdioFile InFile1("c:\\temp\\file1.dat", CFile::modeRead);
CFile InFile2("c:\\temp\\file2.dat", CFile::modeWrite);
InFile1.ReadString( buffer);
LPSTR ps = buffer.GetBuffer(1024);
LPSTR ps1 = buffer1.GetBuffer(1024);
LPSTR ps2 = buffer2.GetBuffer(1024);
for(int i=0;i<1024;i++)
{
j++;
ps[i]==ps1[i]; //почему ps[i] не записывает в ps1[i] ?

buffer.ReleaseBuffer();
buffer1.ReleaseBuffer();
if(ps[i]==' ')
{buffer.ReleaseBuffer();

j=0;}
if(j==7)
{ps1==ps2; // почему?
buffer1.ReleaseBuffer();
buffer2.ReleaseBuffer();
}

}

InFile2.Write( buffer2,strlen(buffer2));
InFile1.Close();
InFile2.Close();

}
PM MAIL   Вверх
DeadSoul
Дата 4.10.2005, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(interceptor @ 4.10.2005, 20:31)
и еще как построчно читать фаил например чтоб удалить комментарии из него на MFC

см. CStdioFile



--------------------
 Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". 

Бьем спамеров их же оружием. Пусть весь спам сыпется им
[email protected] 
PM   Вверх
interceptor
Дата 5.10.2005, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Че то всеравно ниччего не получается Может поможете написать цикл а то я у же 1.5 недели парюсь


void CaaDlg::OnBnClickedButton1()
{
CString buffer;
CString buffer1;
CString buffer2;
int j=0;
CStdioFile InFile1("c:\\temp\\file1.dat", CFile::modeRead);
CFile InFile2("c:\\temp\\file2.dat", CFile::modeWrite);
//InFile1.ReadString( buffer);
LPSTR ps = buffer.GetBuffer(1024);
LPSTR ps1 = buffer1.GetBuffer(1024);
LPSTR ps2 = buffer2.GetBuffer(1024);
for(int i=0;i<1024;i++)
{
InFile1.ReadString( buffer);
j++;
ps[i]=ps1[i]; //почему ps[i] не записывает в ps1[i] ?

buffer.ReleaseBuffer();
buffer1.ReleaseBuffer();
if(ps[i]==' ')
{buffer.ReleaseBuffer();

j=0;}
if(j==7)
{ps1=ps2; // почему?
buffer1.ReleaseBuffer();
buffer2.ReleaseBuffer();
}

}

InFile2.Write( ps2,strlen(ps2));
InFile1.Close();
InFile2.Close();

}
PM MAIL   Вверх
Coocky
Дата 5.10.2005, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



Код

void CaaDlg::OnBnClickedButton1()
{
CString temp;
CString temp2;


CStdioFile InFile1("c:\\temp\\file1.dat", CFile::modeRead);

int begin_word=0; //начало слова

while(InFile.ReadString( temp))//Пока не прочитаем все...

   {

enum {start, word, separator};

    int state = start;

    if (temp.GetLength()==0)

    {

    contunie;
                } 

    if (temp.GetLength()!=0)

    {
        for (int i = 0; i < temp.GetLength(); ++i)
{
   switch(state)

  {
  case start:

  case separator:
      if (IsSeparator(temp.GetAt(i))!=-1)

  {
     state = word;

temp2=temp.Mid(begin_word,i); //Берем слово
begin_word=i;
if (temp2.GetLength()>7) //Проверяем

  {
temp=temp.Replace(temp2,"");//Вырезаем


   }

  
  }
  break;
  
  case word:
  if (IsSeparator(temp)==-1)
  {
      state = separator;
     
  } 

   break;

  }

}

    }

   }




//////////////////////Функция для разделения строки на слова...................
int CaaDlg::IsSeparator(CString s)
{
    CString separators = _T(" ,.;:?!-()"); // Разделители для слов,список можно варьировать
    int x=separators.Find(s);
   return x;
}

Вроде так, писал без компилятора. Сам проверь и подправь smile

Это сообщение отредактировал(а) Coocky - 5.10.2005, 11:11


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
interceptor
Дата 5.10.2005, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Coocky что то твой код не работает он даже во второй фаил не пишет
PM MAIL   Вверх
Coocky
Дата 5.10.2005, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

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



interceptor
Цитата(interceptor @ 5.10.2005, 20:49)
Coocky что то твой код не работает он даже во второй фаил не пишет

smile
Да он только читает-ты ж комментарии смотри! smile


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Earnest
Дата 7.10.2005, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(interceptor @ 4.10.2005, 20:31)
ps[i]==ps1[i]; //почему ps[i] не записывает в ps1[i] ?

Цитата(interceptor @ 5.10.2005, 09:05)
ps[i]=ps1[i]; //почему ps[i] не записывает в ps1[i] ?

Ну и вопросы у тебя...
Может все-таки сам догадаешься?



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


 




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


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

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