+ Konu Cevaplama Paneli
Toplam 2 adet sonuctan sayfa basi 1 ile 2 arasi kadar sonuc gösteriliyor

Konu: InputStream mark() reset()

  1. #1
    Üyelik tarihi
    29.12.04
    Bulunduğu yer
    Konya
    Mesajlar
    57
    Tecrübe Puanı
    8

    Standart InputStream mark() reset()

    j2me kullanarak sözlük uygulaması yapmak istiyorum
    Bunun içi nsözlük dosyası içinde arama yapıyorum
    Fakat InputStream nesnesi ile okuma yaptığımda reset() metodu ile stream i resetlemek zorundayım çünkü Random erişim metodu ( seek() gibi ) yok.
    Bunu da şöyle yapıyorum.dosyayı açtığımda mark(file.length()) metodu ile işaretliyorum
    reset() dediğimde işaretlediğim yerden itibaren okuma yapıyorum.
    Fakat istediğim kayıtları okuyamıyorum
    Herbir kayıt 140 bayt. Örn:50. kaydı getir dediğimde bana 40. ı kaydı getiriyo


    startapp(){

    fcon = (FileConnection) Connector.open(filename,Connector.READ);
    if(!fcon.exists()) {
    throw new IOException("File does not exist");
    }


    input = fcon.openInputStream();

    if(input.markSupported() == true)
    {
    input.mark(STREAM_BASLANGICI);
    }
    }

    public String[] oku(int kayitno)
    {
    String[] temp = new String[2];

    try {

    String okunan ;

    int index;
    byte[] bayt = new byte[140];

    POSITION = (kayitno - 1) * 140;


    input.skip(POSITION);
    input.read(bayt, 0, 140);
    input.reset();

    okunan = new String(bayt);
    okunan=okunan.trim();
    index = okunan.indexOf(9, 0);
    temp[0] = okunan.substring(0, index);
    temp[1] = okunan.substring(index + 1, okunan.length());

    } catch (IOException ex) {
    ex.printStackTrace();
    }
    return temp;
    }

    public void BinarySearch(String aranan)
    {
    int ortanca = 0,temp = 0,alt_sinir = 1,ust_sinir = 5758;

    String[] gelen= new String[2];

    while(alt_sinir <= ust_sinir)
    {
    ortanca = (alt_sinir + ust_sinir)/2;

    gelen = oku(ortanca);
    temp = aranan.compareTo(gelen[0]);

    if(temp == 0)
    {
    //arama başarılı,sonuç bulundu
    textBox.setString(gelen[1]);
    }
    else if(temp > 0) alt_sinir = ortanca + 1;
    else ust_sinir = ortanca - 1;

    }

    System.out.print("bulunamadı");
    textBox.setString("bulunamadı...");

    }


  2. #2
    Üyelik tarihi
    29.12.04
    Bulunduğu yer
    Konya
    Mesajlar
    57
    Tecrübe Puanı
    8

    Standart

    okuma olayını düzelttim

    herbir kayıt 139 bayt + 2 bayt ( Line seperator ) = 141 bayt oluyor.

    böyle okuyunca düzeldi. </span>

+ Konu Cevaplama Paneli

Benzer Konular

  1. Delphi 7 Form Reset
    By the__mentes in forum Delphi / Kylix
    Cevaplar: 2
    Son Mesaj: 04.08.2009, 03:19
  2. birden reset, hdd ısınması ve hatalarrrrr
    By mozk7 in forum Web & Sistem Güvenliği
    Cevaplar: 8
    Son Mesaj: 10.12.2008, 11:28
  3. PC açıldıktan sonra reset atıyor
    By cem1987_ in forum Windows XP
    Cevaplar: 12
    Son Mesaj: 16.10.2008, 02:15
  4. InputStream mark() reset()
    By nurcpp in forum Mobil Programlama Genel
    Cevaplar: 1
    Son Mesaj: 21.04.2008, 11:00
  5. Acil! delphi reset
    By gul123 in forum Delphi / Kylix
    Cevaplar: 4
    Son Mesaj: 21.01.2007, 04:44

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Cevap Yazma Yetkiniz Yok
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok