[ C / C++ ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. NetSter

    NetSter Moderator

    Joined:
    30 Jul 2007
    Messages:
    810
    Likes Received:
    414
    Reputations:
    62
    Code:
    void COpenDialog::OnOpen() 
    {
    	    CString fname; //Переменная для хранения имени файла
            CFile file;    //обьект класса CFile
            //char ch[1024]; //Буффер для чтения данных из файла
    		char ch; //Буффер для чтения данных из файла
    		CString ch1;
            if(!OpenRead)  //Если OpenRead=false то показываем диалог открытия файлов
            {
                    CFileDialog fDialog(TRUE);
                    fDialog.DoModal();
                    m_EditOpen.SetWindowText(fDialog.GetPathName());
                    m_bOpen.SetWindowText("Read");
                    OpenRead = true; 
            }
            else 
            {
                    m_EditOpen.GetWindowText(fname); //Получаем имя файла
    	if(!file.Open(fname, CFile::modeRead, NULL)) //Открываем его
                    {
                            AfxMessageBox("Cannot open file");
                            return;
                    }
    [COLOR=DarkOrange]                int dlina;
    		dlina=::GetFileSize(file,0);
    		file.Read(&ch1, dlina); //Читаем 1024 байт
    		m_EditText.SetWindowText(ch1);
    		file.Close(); //Закрываем файл[/COLOR]
    	m_bOpen.SetWindowText("Open");//Меняем текст кнопки
                    OpenRead = false;
    		}
    }
    
    вот вроде так только при открытии еррор. хз.... не могу понять в чем трабла...
    --------------------EDIT---------------------

    вот если кому нить понадобится, рабочий код. Большое спасибо 2 groupby за помощь.
    Code:
    void COpenDialog::OnOpen() 
    {
    CString fname; //Переменная для хранения имени файла
      CFile file;    //обьект класса CFile        
      if(!OpenRead)  //Если OpenRead=false то показываем диалог открытия файлов
         {
           CFileDialog fDialog(TRUE);
           fDialog.DoModal();
           m_EditOpen.SetWindowText(fDialog.GetPathName());
           m_bOpen.SetWindowText("Read");
           OpenRead = true; 
          }
      else 
          {
            m_EditOpen.GetWindowText(fname); //Получаем имя файла
            if(!file.Open(fname, CFile::modeRead, NULL)) //Открываем его
              {
                AfxMessageBox("Cannot open file");
                return;
              }
       int len = file.GetLength();
       char* ch = new char[len];
       file.Read(ch, len); //Читаем len байт
       m_EditText.SetWindowText(ch);
       file.Close(); //Закрываем файл
       m_bOpen.SetWindowText("Open");//Меняем текст кнопки
       penRead = false;
            }
    }
    
    --------------------EDIT---------------------
     
    _________________________
    #2061 NetSter, 22 Dec 2008
    Last edited: 26 Dec 2008
  2. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Code:
    sprintf(buffer1,"%lu",i);  // заносим i в buffer1
    sprintf(buffer2,"%lu",i*i); // заносим i*i в buffer2
    if(strpos = strstr(buffer2, buffer1))        // узнаем место вхождения buffer1 в buffer2, присваевам strpos. Если он не 0, то идем дальше
      if((strpos-buffer2) == strlen(buffer2) - strlen(buffer1))   // проверям равенство и если не 0, то идем дальше
    
    вот :)
     
    #2062 criz, 22 Dec 2008
    Last edited: 22 Dec 2008
    1 person likes this.
  3. Campery

    Campery Member

    Joined:
    30 Nov 2008
    Messages:
    38
    Likes Received:
    51
    Reputations:
    0
    кто может помочь с программой постучите в асю, дело срочное!! для знающего делов на минуту-две, а мне разбираться некогда... о цене там же договоримся... срочно! (icq:295820085)
     
    1 person likes this.
  4. GuK0s

    GuK0s Elder - Старейшина

    Joined:
    17 Feb 2007
    Messages:
    37
    Likes Received:
    7
    Reputations:
    0
    Ввести массив строк.Для каждой строки проверить,является ли она симметричной или нет.Вывести на экран саму строку и результата её обработки.

    +++ прилогается :D
     
  5. ZipaCna

    ZipaCna Elder - Старейшина

    Joined:
    29 Feb 2008
    Messages:
    60
    Likes Received:
    15
    Reputations:
    3
    В нете есть куча примеров:

    Забей в гугле "с++ палиндром" готовых исходников кучарезультатов там куча.
     
    #2065 ZipaCna, 24 Dec 2008
    Last edited: 24 Dec 2008
  6. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Лазер боре хер обрезал
     
    2 people like this.
  7. Campery

    Campery Member

    Joined:
    30 Nov 2008
    Messages:
    38
    Likes Received:
    51
    Reputations:
    0
    Срочно нужно доработать программу на C++ под прихоти преподователя. Среда разработки C++ Builder 6. Тема:

    "Разработка программного приложения, выполняющего исследование функции одной переменной на некотором интервале: поиск экстремумов, нулей и точек перегиба функции."

    Программа работает, щитает и строит, ТУТ архив с моими исходниками и заданием.

    Преподу нужно:
    1) подключить функции (без указателей компонентов)
    2) реализовать class по заданию.

    Срочно нужно помочь. Жду в аське(295820085) с предложениями. о цене договоримся.. :confused:
     
    #2067 Campery, 24 Dec 2008
    Last edited: 24 Dec 2008
  8. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Товариищи, вот это:
    все еще актуально :)
    Не могу я че-то побороть 8ую ошибку =(
     
  9. izlesa

    izlesa Elder - Старейшина

    Joined:
    3 Jan 2008
    Messages:
    112
    Likes Received:
    32
    Reputations:
    5
    2criz
    ты его не решишь. Эта ошибка не соответствует действительности. А действительность состоит в том, что ToolHelp API не может работать с System ))

    вот немного инфы http://groups.google.com/group/microsoft.public.win32.programmer.kernel/browse_thread/thread/6dfb6bc27d9bf842
     
    1 person likes this.
  10. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    izlesa, спасибо за инфу. Буду делать по-другому :)
     
  11. _nic

    _nic Elder - Старейшина

    Joined:
    5 May 2006
    Messages:
    651
    Likes Received:
    54
    Reputations:
    3
    В winapi есть какая нибудь ф-ция для получения md5 текстовой строки?
     
  12. Lee_fx

    Lee_fx Elder - Старейшина

    Joined:
    27 Sep 2008
    Messages:
    90
    Likes Received:
    14
    Reputations:
    0
    Здравствуйте, такой вопрос:
    Есть строка:
    string a = "((123+32)*12)";
    Как достать из нее числа слева и справа от плюса? Тупо перебирать символы влево и вправо?
     
  13. criz

    criz Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Перебор и использование isdigit()
     
  14. izlesa

    izlesa Elder - Старейшина

    Joined:
    3 Jan 2008
    Messages:
    112
    Likes Received:
    32
    Reputations:
    5
    2_nic
    у мсдн есть замечательный поиск ^____^ тут пример для файла, но переделать для строки проблем нет )))
    http://msdn.microsoft.com/en-us/library/aa382380(VS.85).aspx

    ЗЫ лучше всетаки прочитать про крипто апи предварительно ^___^
     
  15. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Есть вектор мэпов:

    PHP:
    vector
    [
      
    map1
      
    [
         
    name => a
         adress 
    => b
      
    ]
      
    map2
      
    [
         
    name => f
         adress 
    => g
      
    ]
    ...
    ]
    Надо было отсоритровать все имена, и вывести по алфавитному списку. Проблема была не перепутать адрес с именем местами при сортировке.

    Накидал такой кодес:
    PHP:
    void MainClass::sortSquares()
    {
        
    vector<stringnames,adresses;
        
        for(
    signed int i 0< (signed int)this->squares.size(); i++)
        {
            
    names.push_back(this->squares[i]["name"]);
        }
        
        
    sort(names.begin(),names.end());
        
        for(
    signed int i 0< (signed int)this->squares.size(); i++)
        {
            for(
    signed int j 0< (signed int)this->squares.size(); j++)
            {
                if(
    names[i] == this->squares[j]["name"])
                {
                    
    adresses.push_back(this->squares[j]["adress"]);
                    break;
                }
            }
        }
        
        for(
    signed int i 0< (signed int)this->squares.size(); i++)
        {
            
    this->squares[i]["name"] = names[i];
            
    this->squares[i]["adress"] = adresses[i];
        }
    }
    Реально ли его оптимизировать)?


    И второй вопрос: как сравнить string с int'ом? - нужно позарез!!!
     
    #2075 Chaak, 26 Dec 2008
    Last edited: 26 Dec 2008
    1 person likes this.
  16. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    Code:
     for(signed int i = 0; i < (signed int)this->squares.size(); i++) 
        { 
            for(signed int j = 0; j < (signed int)this->squares.size(); j++) 
            { 
                if(names[i] == this->squares[j]["name"]) 
                { 
                    adresses.push_back(this->squares[j]["adress"]); 
                    break; 
                } 
            } 
        }
    Вот тут , дабы не появлялся квадрат,/* тут не читать юзай мапу.. то есть храни индексы от строки в мапе...
    конец не читать :) */

    а лучше добавь массив индексов, сразу при сортировке при перемещении записи имени, перемещай и его индекс. Потом очевидным образом восстанавливаем массив за линию
     
    1 person likes this.
  17. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    >>>И второй вопрос: как сравнить string с int'ом? - нужно позарез!!!

    atoi ?
     
  18. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Я мапу и юзаю) поэтому такая жесть получается)

    Сделал так:

    PHP:
        int stringToI(string str)
        {
            return 
    atoi(str.c_str());
        }
     
    #2078 Chaak, 26 Dec 2008
    Last edited: 26 Dec 2008
  19. desTiny

    desTiny Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    1,006
    Likes Received:
    444
    Reputations:
    94
    я сказал не читать про мапу) добавляешь массив индексов, и O(n^2) становится O(n).
     
  20. jawbreaker

    jawbreaker Elder - Старейшина

    Joined:
    7 Jul 2008
    Messages:
    156
    Likes Received:
    76
    Reputations:
    3
    И второй вопрос: как сравнить string с int'ом? - нужно позарез!!![/QUOTE]
    string a;
    int b;
    sscanf(a.c_str(), "%d", &b);
    дальше сравниваешь с числом
    можно ещё с помощью istringstream
     
    1 person likes this.
Thread Status:
Not open for further replies.