Запись m
Запись 1
Filek
Запись n
Запись 1
File1 имя объекта хранилища
.......
......
........
Пример работы с хранилищем:
методы работы с хранилищем:
openRecStore – открыть хранилище для чтения/записи
closeRecStore – закрыть хранилище
writeRecord - добавить запись
readRecord - прочитать запись
deleteRecStore – удалить хранилище
import javax.microedition.midlet.*;
import com.sun.lwuit.*;
import com.sun.lwuit.events.*;
import javax.microedition.rms.*;
public class lab9 extends MIDlet
{
Form form;
String fName; // имя хранилища
RecordStore rs1; // хранилище
float Dt[]=new float[20]; // данные для записи
int Nc; // количество элементов при чтении
public void startApp()
{
Display.init(this);
form = new Form();
form.setTitle("Лабораторная 9");
fName="test.txt"; // имя хранилища
form.show();
Create(); // создание пустого хранилища
Save(); // запись данных в хранилище
Load(); // загрузка данных из хранилища
deleteRecStore(fName); // удаление хранилища
}
public void Create()
{
int i;
rs1=openRecStore(fName);
closeRecStore(rs1);
for(i=0;i<10;i++)
{
Dt[i]=(float)1.5+i; // тестовый массив для сохранения
}
}
public void Save()
{
int i;
String s;
rs1=openRecStore(fName);
for(i=0;i<10;i++)
{
s=Double.toString(Dt[i]);
writeRecord(rs1,s); // добавление записи
}
closeRecStore(rs1);
}
public void Load()
{
int n,i;
String s;
String[] namesRec = RecordStore.listRecordStores(); // массив строк имен всех хранилищ
n=namesRec.length; // количество хранилищ
rs1=openRecStore(fName);
try
{
n=rs1.getNumRecords(); // количество записей в хранилище
}
catch (Exception ee)
{
}
for(i=1;i<=10;i++) // записи нумеруются с 1 !!
{
s=readRecord(rs1,i); // чтение строки записи с номером i
Dt[i-1]=Float.parseFloat(s); // перевод в вещественное
}
closeRecStore(rs1);
}
// методы работы с хранилищем
public RecordStore openRecStore(String Name)
{
RecordStore rs;
rs=null;
try
{
// true означает,если хранилища нет -создать
rs=RecordStore.openRecordStore(Name, true);
}
catch (Exception e)
{
}
return rs;
}
public void closeRecStore(RecordStore rs)
{
try
{
rs.closeRecordStore();
}
catch (Exception e)
{
}
}
public void writeRecord(RecordStore rs,String str)
{
byte rec[]=new byte[200];
int k;
try
{
rec = str.getBytes("UTF-8");
}
catch(Exception e)
{
}
try
{
rs.addRecord(rec, 0, rec.length);
}
catch (Exception e)
{
}
}
public String readRecord(RecordStore rs,int n)
{
byte[] recData = new byte[200];
int len;
String Rec;
Rec="";
try
{
len=rs.getRecord(n, recData, 0);
Rec=new String(recData,0,len,"UTF-8");
}
catch (Exception e)
{
}
return Rec;
}
public void deleteRecStore(String Name)
{
if (RecordStore.listRecordStores() != null)
{
try
{
RecordStore.deleteRecordStore(Name);
}
catch (Exception e)
{
}
}
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
}
7)Использование listbox и comobox в Visual C++
Для listBox установить selection mode one (выбор одного элемента)
и Scroll always visible true
В comboBox установить свойство Text: “Выбор строки”
а) Добавление элементов и последующий выбор мышкой одной строки:
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
// добавка элементов в listBox
String ^ s =gcnew String("");
s="первый";
listBox1->Items->Add(s);
s="второй";
listBox1->Items->Add(s);
s="третий";
listBox1->Items->Add(s);
// добавка элементов в comboBox
s="четвертый";
comboBox1->Items->Add(s);
s="пятый";
comboBox1->Items->Add(s);
}
б) Программный выбор элемента:
listBox1->SelectedIndex=2;
k=listBox1->SelectedIndex; // нумерация с нуля k=2
comboBox1->SelectedIndex = 1;
k=comboBox1->SelectedIndex;
в) Вставка элемента:
listBox1->Items->Insert(1, "шестой");
comboBox1->Items->Insert(0,"седьмой");
г) Удаление элемента:
listBox1->Items->RemoveAt(1);
comboBox1->Items->RemoveAt(0);
Удаление всех записей:
comboBox1->Items->Clear();
listBox1->Items->Clear();
д) Получение строки в данной позиции:
s=listBox1->Items[2]->ToString(); // s – “второй”
s=comboBox1->Items[1]->ToString(); // s- «четвертый”
е) Отклик на выбор элемента пользователем:
private: System::Void listBox1_Click(System::Object^ sender, System::EventArgs^ e)
{
int k;
k=listBox1->SelectedIndex; // k=1
}
private: System::Void comboBox1_Click(System::Object^ sender, System::EventArgs^ e)
{
int k;
k=listBox1->SelectedIndex;
}
8) Использование List и ComoBox в Java SE
а) Добавление элементов и последующий выбор мышкой одной строки:
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class lab9
{
JFrame form;
DefaultListModel lm; // модель списка
JList jl;
JComboBox cb;
lab9()
{
form = new JFrame();
form.setBounds (10,20,500,400);
form.setTitle ("Лабораторная 9");
form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form.setLayout(null);
// параметры JList
lm=new DefaultListModel();
jl=new JList(lm);
jl.setBounds(20,10,140,90);
jl.setVisibleRowCount(5); // количествовидимыхстрок
jl.setSelectionMode(1); // сколькоможноодновременновыбрать
jl.setSelectedIndex(-1); // индексвыбранного
jl.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e) // отклик на выбор
{
int k;
k=jl.getSelectedIndex();
}
});
form.add(jl);
cb=new JComboBox();
cb.setBounds(200,10,140,60);
cb.addItemListener(new ItemListener()
{
public void itemStateChanged(ItemEvent e) // отклик на выбор
{
int k;
k=cb.getSelectedIndex();
}
});
form.add(cb);
form.show();
lm.addElement("первый");
lm.addElement("второй");
lm.addElement("третий");
cb.addItem("четвертый");
cb.addItem("пятый");
}
public static void main (String args[])
{
lab9 f;
f= new lab9();
}
}
В JList автоматиеского скролинга нет. JList нужно размещать а JPanel.
б) Программный выбор элемента:
lm.addElement("первый");
lm.addElement("второй");
lm.addElement("третий");
cb.addItem("четвертый");
cb.addItem("пятый");