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

Глава 2

Сохраним шапочку

Эта программа разбивает КАРТИНКУ на СТРОКИ-КАРТИНКИ. И каждую СТРОКУ-КАРТИНКУ выводит
в файл, разделяя их пробелом. Эта программа уже нормально рапорядилась с шапочкой.

Здесь показан фрагмент кода, который отделяет от КАРТИНКИ, которая содержится в списке
FieldNew, СТРОКИ-КАРТИНКИ и помещает каждую СТРОКУ_КАРТИНКУ в список Field_StrNew.
Затем выводит на экран эту СТРОКУ_КАРТИНКУ и очищает Field_StrNew для новой СТРОКИ_КАРТИНКИ.


. . .
Stream fout = new Stream ("data.out",Stream.WRITE);
. . .

int kol = 0;//колич символов в строке

List< List<Character> > Field_Str = new ArrayList< List<Character> >();
List< List<Character> > Field_StrNew = new ArrayList< List<Character> >();
List<Character> CharStroka = new ArrayList<Character>();//вектор строки

/////////////////////////////////////////////
/////////////////////////////////////////////////
////////////// СТРОКА-КАРТИНКА в Field_Str /////
/////////////////////////////////////////////////

//Field.size() равно chislo_str
//Field[0].size() равно dlina_str*2

//String Temp = "";
int control = 0;
int chisloStrKartinka = 0;
int chisloPustoStr = 0;

//200
for (int y = 0; y < FieldNew.size(); y++) {

for (int x = 0; x < FieldNew.get(0).size(); x++) {
CharStroka.add(FieldNew.get(y).get(x));
}

if(charVecPustStr.equals(CharStroka)){

//пустая строка
if(control == 2 ){
//положим пустую строку в СТРОКУ-КАРТИНКУ сверху тела
//Добавить строку в Field_StrNew
Field_Str.add(CharStroka);
for (int y1 = 0; y1 < Field_Str.size(); y1++) {
List Str = new ArrayList();
for (int x = 0; x < Field_Str.get(0).size(); x++) {
Str.add(Field_Str.get(y1).get(x));
}
Field_StrNew.add(Str);
}
CharStroka.clear();
Field_Str.clear();
}
if(control>2){//Сейчас в Field_Str находится С-К
control=0;
//В этом блоке надо обработать С-К которая находится в Field_StrVert
//и затем стереть ее оттуда
//ОБРАБАТЫВАЕМ ЗДЕСЬ С-К

fout.println("Hello");
//выведем поле (двумерный вектор) FieldNew для проверки.
//В нем полная картинка
//234
for (int y2 = 0; y2 < Field_StrNew.size(); y2++) {

for (int x = 0; x < Field_StrNew.get(0).size(); x++) {
fout.print(Field_StrNew.get(y2).get(x));
}
fout.println("");
}
//В двумерном векторе Field_StrNew полная картинка
Field_StrNew.clear();
//-------------------------------------------------------
//очистка Field_StrNew здесь обязательна
}
CharStroka.clear();
}//////////////////////////////////////////////
else{
//строка не пуста control++;
//Добавить строку в Field_StrNew
Field_Str.add(CharStroka);
for (int y1 = 0; y1 < Field_Str.size(); y1++) {
List Str = new ArrayList();
for (int x = 0; x < Field_Str.get(0).size(); x++) {
Str.add(Field_Str.get(y1).get(x));
}
Field_StrNew.add(Str);
}
CharStroka.clear();
Field_Str.clear();

}//end if..else строка пуста/не пуста
//-------------------------------------------------------------------------
}//end for

System.out.println("Field_StrNew.size() " + Field_StrNew.size());
System.out.println("Field_StrNew.get(0).size() " + Field_StrNew.get(0).size());

fout.close();


Здесь нормально работающая программа, которая выделяет С-К и вместо обработки
выводит в файл для проверки. Здорово!

Подсказка

Программа находится:
D:\Ency_Языки_Программир\Ency_Java\Распознавание образов\Программы01_07\Программы04\Prog02>


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

Hosted by uCoz