Пишу на ms visual c++ 6 Оконное приложение.Первая кнопка читает текстовый файл и выводит слова в первый эдитбокс. Вторая должна отсортровать эти слова по алфавиту методом выбора и записать в новый файл. Вопрос в чем, если слова читаемые из файла остаются в эдитбоксе, т.е. в буфере, их можно взять и отсортировать, т.е. не прибегая к повторному чтению файла во время сортировки.Как это на частном случае сдеать? И второй вопрос, куда прописать по-человечески фунции Sort() и main() из второй кнопки.Компил на них естественно ругается. Спасибо.
| Код | void CKursrabDlg::OnButton1() //Чтение файла и вывод на первый бокс { char str[100]; char Filter []="TextFile(*.txt),(*.doc) | *.txt; *.doc all(*.*) | *.*||"; CFileDialog fd(TRUE, ".txt", "ReadMe", OFN_HIDEREADONLY, Filter); // fd. DoModal(); if(fd.DoModal()==IDOK) { CFile f; f.Open(fd.GetPathName(), CFile:: modeRead); f.SeekToBegin(); //m_str - первый бокс, куда выводится данные из читаемого файла int z = f.Read(str, sizeof(str)); str [z] = '\0'; m_str.Format(str); UpdateData(0); f.Close(); } } void CKursrabDlg::OnButton2() { // Кнопка сортировка текста по алфавиту выбором void Sort(char *a[], int size ) { int i,j,min; char *k; k = new char[1024]; for (i=0;i<size-1;i++) { min=i; for(j=i+1; j<size; j++) if(strcmp(a[j], a[min])>0) min=j; } k = a[min]; a[min]=a[i]; a[i]=k; } void main(int argc, char* argv[]) { int i,n; char mas; for (i=0; i<n; i++) printf("%5s", mas[i]); printf("/n"); Sort(char **mas, int i); for (i=0; i<n; i++) printf ("%5s", mas[i]); } }
|
|