Разработка программы форматирования текстовых файлов

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

D+WS_VISIBLE+WS_VSCROLL+WS_HSCROLL+ES_AUTOHSCROLL+ES_AUTOVSCROLL+ES_MULTILINE+ES_WANTRETURN,0,0,0,0,hwnd,0,NULL,0);(!txtctrl) PostQuitMessage(0);;WM_RBUTTONDOWN:(doit==0)

{

}0;;:DefWindowProc(hwnd, message, wParam, lParam);

}0;

}

//функция обрабатывающая сообщения окна диалога

BOOL CALLBACK Dlg1Func (HWND Dlg1, UINT message, WPARAM wParam, LPARAM lParam)

{ HWND Edt;(message)

{WM_INITDIALOG:

//устанавливаем параметры диалога "по умолчанию"(Dlg1,IDC_EDIT1,"75");(Dlg1,IDC_EDIT2,"0");;WM_DESTROY:WM_CLOSE:(Dlg1);=NULL;;WM_COMMAND:(LOWORD(wParam)==IDOK)

{char te[4];

//получаем указатель на поле ввода диалогового окна

Edt=GetDlgItem(Dlg1,IDC_EDIT1);

//получаем то что введено в поле ввода в виде текста(Edt,te,3);

//преобразуем текст в число=atoi(te);

//получаем число пробелов в начале строки

Edt=GetDlgItem(Dlg1,IDC_EDIT2);

GetWindowText(Edt,te,3);=atoi(te);

if (aftcon>0) {(int d=1; d<aftcon; d++)

{strcat(cppbs," ");}}

//выравнивать ли текст по ширине

Edt=GetDlgItem(Dlg1,IDC_CHECK1);(SendMessage(Edt,BM_GETCHECK,0,0)){alg=1;}else{alg=0;}

//получаем значения элементов управления=GetDlgItem(Dlg1,IDC_CHECK2);

if (SendMessage(Edt,BM_GETCHECK,0,0)){sp=1;}else{sp=0;}

//слева

//12=GetDlgItem(Dlg1,IDC_RADIO2);(SendMessage(Edt,BM_GETCHECK,0,0)){nd=0;}

//12/13=GetDlgItem(Dlg1,IDC_RADIO3);(SendMessage(Edt,BM_GETCHECK,0,0)){nd=1;}

//закрываем диалоговое окно=CreateDialog(NULL,(LPCTSTR) IDD_F, hwnd, Dlg2Func);(Dlg2,SW_SHOW);(Dlg1,0);

};;

}FALSE;

}

//собственно функция выполняющая форматирование

BOOL CALLBACK Dlg2Func (HWND Dlg2, UINT message, WPARAM wParam, LPARAM lParam)

{hu[]="";s[2048]="",stt[2048]=" ",sttt[2048]=" ",re[2048]="";

char ns=13;nsp=/n/r;ns1=10;

char caches[2048];empc[]="";dspase[3]=" ";qwe[]="";rf,fe,sf,wf,st,sv;t[1];long fs=0;long fss=0;long ti=1,to=1;i=0,j=0;(message)

{WM_DESTROY:WM_CLOSE:(Dlg2);=NULL;;

case WM_COMMAND:

//отрабатываем нажатие кнопки оК(LOWORD(wParam)==IDOK)

{ //открываем исходный файл для чтения(s,cppbs);(strlen(buf)<2 || strlen(buf1)<2){MessageBox(NULL,"Прежде чем начинать форматировать нужно определиться с тем, что мы будем форматировать.","Error",MB_OK); EndDialog(Dlg2,0);goto w1;}

//открываем файл с исходным текстом.lStructSize=sizeof(OPENFILENAME);

ofn.hwndOwner=hwnd;.lpstrFile=buf;.nMaxFile=260;.Flags=OFN_FILEMUSTEXIST;.lpstrDefExt=ext;=CreateFile(buf,GENERIC_READ,0,0,OPEN_EXISTING,0,0);//запоминаем указатель на него

//создаём файл в который будем записывать результаты форматирования

ofn.lStructSize=sizeof(OPENFILENAME);.hwndOwner=hwnd;.lpstrFile=buf1; ofn.nMaxFile=260;.Flags=OFN_NOREADONLYRETURN;.lpstrDefExt=ext;

/*открываем только для записи (читать из него нам точно ничего не понадобится),

при открытии удаляем все его содержимое) */

hfile1=CreateFile(buf1,GENERIC_WRITE,0,0,CREATE_ALWAYS,0,0);//запоминаем указатель на него=true;=GetFileSize(hfile,&fss);(qwe,"%i",fs);(txtctrl,qwe);

//в цикле читаем файл и занимеемся форматированием строчек

while(rf)

{=ReadFile(hfile,&t,to,&ti,NULL);

//st=false;(ti!=0){i++;}//в случае если, что-то прочитали, то увеличиваем счётчик на единицу((fs)==i) {rf=0;}//проверяем не хватит ли нам читать

if (t[0]==13){strcpy(t,hu);}(t[0]!=32 && t[0]!=10){strcat(caches,t);}

if (t[0]==32)//если прочитанный символ - пробел

{strcat(caches,t);(strlen(s)+strlen(caches)+strlen(re)<con){(s,re);(re,hu);(re,caches);(caches,hu);//очищаем кеш

}{ l1:((strlen(s)+strlen(re)<con) && (alg))

{(stt,re);(re,stt);(stt,sttt);l1;

}(s,re);(hfile1,&s,strlen(s),&ti,NULL);(nd) {WriteFile(hfile1,&ns,1,&ti,NULL);}// записываем символ перевода строки

WriteFile(hfile1,&ns1,1,&ti,NULL);//записываем символ конца строки

strcpy(s,cppbs);(re,caches);

strcpy(caches,hu);

}

}(t[0]==10) {//если прочитанный символ конец сроки

strcat(s,caches);(s,re);(caches,hu);(re,hu);

char kl[2048]=" ";(sp) {strcat(s,kl);}//если необходимо добавляем пробел в конце истинного абзаца текста

WriteFile(hfile1,&s,strlen(s),&ti,NULL);

{WriteFile(hfile1,&ns,1,&ti,NULL);}(hfile1,&ns1,1,&ti,NULL);(s,cppbs);

}

}(hfile);(hfile1);=CreateFile(buf1,GENERIC_READ,0,0,OPEN_EXISTING,0,0);=VirtualAlloc(0,GetFileSize(hfile1,0),MEM_COMMIT,PAGE_READWRITE);(hfile1,mem1,GetFileSize(hfile1,0),&aa,0);

((BYTE*)mem1)[GetFileSize(hfile1,0)]=0;(hfile1);

//выводим содержимое файла в EDIT(txtctrl,(LPCSTR)mem1);(mem1,0,MEM_RELEASE);(Dlg2,0);(txtctrl);

}:{;}

}FALSE;

}CALLBACK DlgAFunc (HWND DlgA, UINT message, WPARAM wParam, LPARAM lParam)

{(message)

{WM_DESTROY:WM_CLOSE:(DlgA);=NULL;;

}FALSE;

}

resource.h

#define DLG1 101

#define DLG2 102

#define IDR_MENU1 103

#define IDD_Format 104

#define IDD_F 105

#define IDD_DIALOG1 106

#define IDB_BITMAP1 107

#define IDC_EDIT1 1002

#define IDC_RADIO2 1005

#define IDC_RADIO3 1006

#define IDC_CHECK2 1007

#define IDC_EDIT2 1008

#define IDC_CHECK1 1018

#define IDFILEOPEN 40001

#define ID_MENUITEM40002 40002

#define ID_MENUITEM40003 40003

#define ID_MENUITEM40004 40004

#ifdef APSTUDIO_INVOKED

#ifndef APSTUDIO_READONLY_SYMBOLS

#define _APS_NEXT_RESOURCE_VALUE 108

#define _APS_NEXT_COMMAND_VALUE 40005

#define _APS_NEXT_CONTROL_VALUE 1019

#define _APS_NEXT_SYMED_VALUE 101

#endif

#endif

Res.rc

IDD_Format DIALOG DISCARDABLE 0, 0, 182, 124DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU "Параметры форматирования текста"

FONT 8, "MS Sans Serif"

BEGIN

DEFPUSHBUTTON "OK",IDOK,118,100,50,14

LTEXT "Количество символов в строке",IDC_STATIC,7,15,107,8

EDITTEXT IDC_EDIT1,117,12,55,14,ES_AUTOHSCROLL | ES_NUMBER"Разрыв строки",IDC_STATIC,7,74,161,22"10",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,13,83,24,10"13/10",IDC_RADIO3,"Button",BS_AUTORADIOBUTTON,50,84,35,10"Завершать абзац пробелом",IDC_CHECK2,"Button",_AUTOCHECKBOX | WS_TABSTOP,7,58,111,10 "Добавлять пробелов перед стрококой",IDC_STATIC,7,30,132,8

EDITTEXT IDC_EDIT2,142,28,32,13,ES_AUTOHSCROLL | ES_NUMBER "Выравнивать строки текста по ширине", IDC_CHECK1,"Button",

BS_AUTOCHECKBOX | WS_TABSTOP,8,45,149,10_F DIALOG DISCARDABLE 0, 0, 186, 44DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU"Форматирование"8, "MS Sans Serif" "Начать форматирование",IDOK,7,23,172,14

LTEXT "Для начала форматирования нажмите кнопку", IDC_STATIC,14,

13,158,8_DIALOG1 DIALOG DISCARDABLE 0, 0, 235, 52DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU"О программе"8, "MS Sans Serif" "Полностью учебная программа - за любой нанесённый ущерб мы ответственности не несём. Распространение свободное. Казаковцев Н.М. Малмыгина О.В. Хакасский Государственный Университет. Группа 10-1. 2004 г.",_STATIC,7,7,221,38_MENU1 MENU DISCARDABLE"Файл""Открыть текстовый файл", IDFILEOPEN"Закрыть", IDCLOSE"Форматирование""Параметры форматирования", ID_MENUITEM40002"Начать форматирование", ID_MENUITEM40003"О программе""?", ID_MENUITEM40004

END