Организация доступа к базам данных в Интернет
Рефераты >> Программирование и компьютеры >> Организация доступа к базам данных в Интернет

catch( java.io.UnsupportedEncodingException e ) { return Str;}

return Str;

}

public String getServletInfo() {

return "Поиск в базе данных ";

}

private String RemoveTrash(String str){

return new String(str);

}

// преобразование в нижний регистр

public String toLow(String str){

char old[] = str.toCharArray();

char news[] = new char[str.length()];

char c;

for (int i =0; i<str.length(); i++){

c = old[i];

switch (c) {

case 'А' : {c = 'а';break;}

case 'Б' : {c = 'б';break;}

case 'В' : {c = 'в';break;}

case 'Г' : {c = 'г';break;}

case 'Д' : {c = 'д';break;}

case 'Е' : {c = 'е';break;}

case 'Ё' : {c = 'ё';break;}

case 'Ж' : {c = 'ж';break;}

case 'З' : {c = 'з';break;}

case 'И' : {c = 'и';break;}

case 'Й' : {c = 'й';break;}

case 'К' : {c = 'к';break;}

case 'Л' : {c = 'л';break;}

case 'М' : {c = 'м';break;}

case 'Н' : {c = 'н';break;}

case 'О' : {c = 'о';break;}

case 'П' : {c = 'п';break;}

case 'Р' : {c = 'р';break;}

case 'С' : {c = 'с';break;}

case 'Т' : {c = 'т';break;}

case 'У' : {c = 'у';break;}

case 'Ф' : {c = 'ф';break;}

case 'Х' : {c = 'х';break;}

case 'Ц' : {c = 'ц';break;}

case 'Ч' : {c = 'ч';break;}

case 'Ш' : {c = 'ш';break;}

case 'Щ' : {c = 'щ';break;}

case 'Ъ' : {c = 'ъ';break;}

case 'Ы' : {c = 'ы';break;}

case 'Ь' : {c = 'ь';break;}

case 'Э' : {c = 'э';break;}

case 'Ю' : {c = 'ю';break;}

case 'Я' : {c = 'я';break;}

default : {news[i]=c;}

}// switch

news[i] = c;

}

return new String(news);

}

//

private String TagRemove(String s){

boolean inTag = false;

boolean tag = false;

int sn = 0;

char c;

int m = s.length();

char[] cd = new char[m];

char[] old = s.toCharArray();

char cMD = (char) MD2;

for (int i=0; i<m; i++)

{c=old[i];

if (tag) { c=' '; tag = false; }

else if ( c == cMD ) { c=' '; tag = true;}

cd[i] = c;

}

return new String(cd);

}

//

public void dbFileRead(String dbNamePath, PrintStream out, String query) {

String mAvtor = null; // 100

String msAvtor = null; // 700

String mName = null; // 245

String mPrinter = null; // 260

String mSize = null; // 300

String mKey = null; // 653

String mSeria = null; // 490

String mBBK = null; // 91

String mKaIndex = null; // 90

long fPosMarker = 0, // Позиция относительно начала

fPosData = 0; //

boolean done = false,

Avtor = false;

int mC =0,

mE =0; // Счетчик

byte Jumper[] = new byte[5]; // Размер запяси - символьный

int JIndex = 0, // Размер запяси - числовой

JTemp = 0, // Размер данных + словарь

MIndex = 0, // Счетчик для массива

MTemp = 0; // Счетчик полей

if (query != null){

try { RandomAccessFile dbfile = new RandomAccessFile(dbNamePath,"r");

// Цикл чтения файла по маркерам

while (fPosMarker != dbfile.length()) {

try { mC++;

dbfile.seek(fPosMarker);

dbfile.read(Jumper);

String jBuf = new String(Jumper);

JIndex = Integer.parseInt(jBuf,10);

int b = 0;

// Поиск конца словаря

while ( b != MD){

dbfile.seek(fPosMarker+24+MIndex);

b = dbfile.read();

MTemp++;

MIndex = MTemp;

}

MTemp= MTemp - 1;

// чтение Словаря из файла в отдельный массив

byte Dic[] = new byte[MTemp];

dbfile.seek(fPosMarker+24);

dbfile.read(Dic);

// чтение полей данных из файла в массив

fPosData = fPosMarker+24+MTemp;

String sDic = new String(Dic);

byte MarcRec[] = new byte[JIndex-24-MTemp];

dbfile.seek(fPosData);

dbfile.read(MarcRec);

int DI2 = 0,

DI3 = 0,

DI4 = 0,

DI5 = 0,

PNum = 0, // Номер поля числовой

PLength = 0, // Длинна поля числовая

PStart = 0; // Начальная позиция поля чиловая

// сканирование номеров полей

while ( DI2 != MTemp){

DI3=DI2+3;

String DStr = sDic.substring(DI2,DI3);// Номер поля

DI4=DI3+5;

String DStr2 = sDic.substring(DI3,DI4);// Начальная позиция

DI5=DI4+4;

String DStr3 = sDic.substring(DI4,DI5);// Длинна поля

DI2=DI2+12;

PLength = Integer.parseInt(DStr3,10);// Узнаем длинну поля

PStart = Integer.parseInt(DStr2,10);// Узнаем начало поля

PNum = Integer.parseInt(DStr,10);// Код

byte Pole[] = new byte[PLength];

// Чтение поля из файла

for (int PIndex = 0; PIndex < PLength; PIndex++) {

Pole[PIndex] = MarcRec[PStart+PIndex];

}

String Pol = new String(Pole);

if (Pol == null) Pol=" ";

switch (PNum) {

case 100 : { mAvtor = TagRemove(Pol.substring(5));break;}

case 700 : { msAvtor = TagRemove(Pol.substring(5));break;}

case 245 : { mName = TagRemove(Pol.substring(5));break;}

case 490 : { mSeria = TagRemove(Pol.substring(5));break;}

case 91 : { mBBK = TagRemove(Pol.substring(5));break;}

case 90 : { mKaIndex = TagRemove(Pol.substring(5));break;}

case 260 : { mPrinter = TagRemove(Pol.substring(5));break;}

case 300 : { mSize = TagRemove(Pol.substring(5));break;}

case 653 : { mKey = TagRemove(Pol.substring(5));break;}

default : {}

}// switch

}// конец проверки полей

if ( mAvtor == null) mAvtor=" ";

if ( msAvtor == null) msAvtor=" ";

if ( mName == null) mName=" ";

if ( mPrinter == null) mPrinter=" ";

if ( mSize == null) mSize=" ";

if ( mKey == null) mKey=" ";

MarcRecord Rec = new MarcRecord( mAvtor,

msAvtor,

mName,

mPrinter,

mSize,

mKey,

mSeria,

mBBK,

mKaIndex);

if ( Rec.rAvtor.indexOf(query) != -1 ||

Rec.rsAvtor.indexOf(query) != -1 ||

Rec.rName.indexOf(query) != -1 ||

Rec.rKey.indexOf(query) != -1)

{ mE++;

out.println("<table width=\"461\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"+

"<tr bgcolor=\"#3399FF\">"+

"<td colspan=\"3\" class=\"text\">&nbsp;&nbsp;&nbsp;Автор:&nbsp;"+

"<font color=\"#000000\">"+

Rec.rAvtor+" "+

Rec.rsAvtor+

"</font></td></tr><tr>"+

"<td colspan=\"3\" valign=\"top\" class=\"bodytext\">"+mE+". "+mC+

"&nbsp;<b>Название:</b>&nbsp;"+

Rec.rName+"<br>"+

Rec.rPrinter+" "+

Rec.rSize+"<br>"+

Rec.rBBK+" "+

Rec.rKaIndex+" "+

Rec.rSeria+

"</td></tr></table>");

}

fPosMarker = fPosMarker+JIndex;

MTemp = 0;

MIndex = 0;

}

catch (IOException e) {


Страница: