Глава 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)
Назад |
Начало урока |
Вверх |
Вперед
Содержание