Назад | Начало урока | Вперед
Содержание

Глава 2

БЛОК ОБРАБОТКИ 2 (полный)


/** Program from Albert Volos May 2010
* (C) "Распознаватель Текста"
* Автор: Альберт Волос (e-mail: pick4you@yandex.ru)
* http://www.pick4you.narod.ru
*
**/

////////////////////////////
///// БЛОК ОБРАБОТКИ 2 //////
///////////////////////////
if(control>2){//Сейчас в Field_Str находится С-К

control=0;
to1.println("");
//В этом блоке надо обработать С-К которая находится в Field_Str
//и затем стереть ее оттуда
//ОБРАБАТЫВАЕМ ЗДЕСЬ С-К

//Поставим С-К ВЕРТИКАЛЬНО
Field_Str.funTurnMatrixVH();
///----------------------------------------------
/////////////////////////////////////////////////
//////////////ВЫДЕЛИМ Б-К в Field_Bukva /////////
/////////////////////////////////////////////////

//Определяем эталон пустой строки
List charVecPustStr2 = new ArrayList();//список для строки
charVecPustStr2.addAll(Field_Str.funPustStr()); //В charVecPustStr - эталон пустой строки

int chislo_str_v_bukve_cart = 0;
int chislo_str_v_bukve_cart1 = 0;
int chislo_str_v_bukve_cart2 = 0;

int int_Probel = 0;
int int_ProbelControl = 0;
String Str;

List Stroka2 = new ArrayList();//список для строки

Matrix Field_Bukva = new Matrix();
Field_Bukva.setMatrix(new ArrayList>());
Matrix Container1 = new Matrix(); // двумерный список
Container1.setMatrix(new ArrayList>());
Matrix Container2 = new Matrix(); // двумерный список
Container2.setMatrix(new ArrayList>());
Matrix Container3 = new Matrix(); // двумерный список
Container3.setMatrix(new ArrayList>());

boolean bul_Load = false;
boolean bul_Cont1 = false;
boolean bul_Cont2 = false;
boolean bul_Cont3 = false;

boolean Marka2 = false;
boolean Marka = false;

////////////////////////////////////////////////////////
////////////// БУКВА-КАРТИНКА в Field_Bukva //////////
////////////////////////////////////////////////////////

for (List als1: Field_Str.getMatrix()) {

for (Character c: als1) {
Stroka2.add(c);
}
if(charVecPustStr2.equals(Stroka2))//пустая строка{
/////////////////////////////////////////////////////////////////////////////
//
//0
if(bul_Load == true && chislo_str_v_bukve_cart < 7){//конец С-К
Field_Bukva.clearMatrix();
bul_Load = false;
//chislo_str_v_bukve_cart = 0;
Marka = true;
}
//
//1
if(bul_Load == true && bul_Cont3 == false && bul_Cont2 == false){

Container3.funCopyMatrixToMatrix(Field_Bukva);
bul_Cont3 = true;
Field_Bukva.clearMatrix();
bul_Cont1 = false;
bul_Load = false;
//chislo_str_v_bukve_cart = 0;
Marka2=true;
Marka = true;
}
//
//2
if(bul_Load == true && bul_Cont3 == true && bul_Cont2 == false ){
if(chislo_str_v_bukve_cart > 18){//Это буква?
Container2.funCopyMatrixToMatrix(Field_Bukva);
bul_Cont2 = true;
Field_Bukva.clearMatrix();
//Положили букву в Container2
//Здесь надо выгрузить из Container3
//Затем перегрузить из Container2 в Container3
//Очистить Container2

Container3.funType(to1,to2,to3,to4,strListKeyVert,

strListKeyHoriz,strListAlfabet);// Обработать Container3

Container3.clearMatrix();
bul_Cont3 = false;
Container3.funCopyMatrixToMatrix(Container2);
bul_Cont3 = true;
Container2.clearMatrix();
bul_Cont2 = false;

bul_Load = false;
//chislo_str_v_bukve_cart = 0;
Marka = true;

}
else{//Это буква Ы
Container3.funCopyMatrixToMatrix(Field_Bukva);
bul_Cont3 = true;
Field_Bukva.clearMatrix();
Container2.clearMatrix();
//Здесь надо выгрузить из Container3
Container3.funType(to1,to2,to3,to4,strListKeyVert,
strListKeyHoriz,strListAlfabet);// Обработать Container3

Container3.clearMatrix();
bul_Load = false;
//chislo_str_v_bukve_cart = 0;
Marka = true;
}
}
//
//3
if(bul_Load == true && bul_Cont3 == true && bul_Cont2 == true){
if(chislo_str_v_bukve_cart > 18){//Это буква?
Container3.funType(to1,to2,to3,to4,strListKeyVert,
strListKeyHoriz,strListAlfabet);// Обработать Container3

Container3.clearMatrix();
bul_Cont3 = false;

Container3.funCopyMatrixToMatrix(Container2);
bul_Cont3 = true;
Container2.clearMatrix();
bul_Cont2 = false;

Container2.funCopyMatrixToMatrix(Field_Bukva);

bul_Cont2 = true;
Field_Bukva.clearMatrix();
bul_Cont1 = false;

bul_Load = false;
//chislo_str_v_bukve_cart = 0;
Marka = true;

}
else{
Container2.funCopyMatrixToMatrix(Field_Bukva);
bul_Cont2 = true;
Field_Bukva.clearMatrix();
bul_Cont1 = false;

Container3.funType(to1,to2,to3,to4,strListKeyVert,

strListKeyHoriz,strListAlfabet);// Обработать Container3

Container3.clearMatrix();
bul_Cont3 = false;

Container2.funType(to1,to2,to3,to4,strListKeyVert,

strListKeyHoriz,strListAlfabet);// Обработать Container3

Container2.clearMatrix();
bul_Cont2 = false;

bul_Load = false;
//chislo_str_v_bukve_cart = 0;
Marka = true;

}
}
//4
int_Probel++;
if(Marka2==true && int_Probel==19){
Marka2=false;
Container3.funType(to1,to2,to3,to4,strListKeyVert,
strListKeyHoriz,strListAlfabet);// Обработать Container3

Container3.clearMatrix();
bul_Cont3 = false;
}
if(Marka==true){
chislo_str_v_bukve_cart2 = chislo_str_v_bukve_cart1;
chislo_str_v_bukve_cart1 = chislo_str_v_bukve_cart;

if(chislo_str_v_bukve_cart1 > 67 && chislo_str_v_bukve_cart2 > 67){

to1.print(" ");
}
Marka=false;
}
if(int_ProbelControl==66 ){
chislo_str_v_bukve_cart2 = chislo_str_v_bukve_cart1;
chislo_str_v_bukve_cart1 = chislo_str_v_bukve_cart;
to1.print(" ");
int_ProbelControl=0;
}
if(int_Probel%72==0){
to1.print(" ");
}
chislo_str_v_bukve_cart = 0;
Stroka2.clear();

/////////////////////////////////////////////////////////////////////////

}
else{//Строка не пуста. Загружаем короткую строку (вертикальная С-К)
if(int_Probel>0)
int_ProbelControl = int_Probel;
int_Probel=0;
chislo_str_v_bukve_cart++;
bul_Load = true;

Field_Bukva.copyArayListToMatrix(Stroka2, Stroka2.size());
Stroka2.clear();

}//end if..else пустая/не пустая строка
}//end for КОНЕЦ ЦИКЛ ОБРАБОТКИ БУКВ

///------------------------------------------------------------
Field_Str.clearMatrix();//очистка Field_Str здесь обязательна

}//end if(control>2)


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz