Arsip: (ask) mengatur posisi teks di delphi

 
user image
more 12 years ago

gembel_retro

Dear rekan-rekan pecinta Delphi Perkenalkan saya penduduk baru disini :) saya baru belajar Delphi (Delphi 7) dan ingin bertanya kepada rekan-rekan. Begini ceritanya, Saya sudah membuat teks file (create new text file) dari Delphi, dan saya ingin menulis data ke teks file tersebut dengan data yang ada di database (ms Access 2003). Namun posisi di teks filenya bisa di setting. contoh: nama tabel : Mahasiswa, fieldnya adalah: NIM (number), Nama (text), Nilai (Number) Pertanyaanya adalah: Bagaimana caranya agar di teks filenya bisa kita atur seperti ini ? : kolom 1 s/d 3 untuk NIM kolom 4 untuk spasi kolom 5 s/d 15 untuk Nama kolom 16 untuk spasi kolom 17 s/d 19 jadi maksimum panjang 1 baris didalam teks file ada 19 karakter untuk 1 record saya menggunakan AdoConnection untuk connect ke ms accesnya, TMemo untuk menampung datanya contoh source codenya :

var 
  x:integer;
  NIM:integer;
  Nama:string;
  Nilai:integer;
begin
  {AdoDataset Name= DS1, TMemo Name=mm}
  DS1.Active:=False;
  DS1.CommandText:='select * from Mahasiswa order by NIM';
  DS1.Active:=True;
  if DS1.Recordcount >0 then
  begin
    DS1.First;
    for x:=1 to DS1.RecordCount do
    begin
      NIM:=DS1.FieldByName('NIM').AsInteger;
      Nama:=DS1.FieldByName('Nama').AsString;
      Nilai:=DS1.FieldByName('Nilai').AsInteger;
      {tulis ke memo}
      mm.Lines.Add('........'); { yang ini saya masih bingung untuk mengatur posisi yang sudah ditentukan}
 
      DS1.Next;
    end;
    {kalau sudah di memo semua tinggal export isinya ke teks file}
  end;
end;
Demikian pertanyaanya, maklum agak panjang mudah-mudahan bisa dimengerti maksudnya ^_^ Mohon maaf jika hal ini sudah pernah ada yg bertanya sebelumnya, sudi kiranya untuk memberikan linknya jika para suhu tak keberatan Terima kasih :)
user image
more 12 years ago

mas_kofa


function  TForm1.FitString(str: string; x: integer): string;
begin
  result := copy(str + DupeString(' ', x), 1, x);
end;
function  TForm1.CombineField(Nim, Nama, Nilai: string): string;
begin
  result := FitString(Nim, 3) + ' ' + FitString(Nama, 11) + ' ' + FitString(Nilia, 3);
end;
procedure TForm1.Button1Click(sender: TObject);
var 
  x:integer;
  NIM:integer;
  Nama:string;
  Nilai:integer;
begin
  {AdoDataset Name= DS1, TMemo Name=mm}
  DS1.Active:=False;
  DS1.CommandText:='select * from Mahasiswa order by NIM';
  DS1.Active:=True;
  if DS1.Recordcount >0 then
  begin
    DS1.First;
    for x:=1 to DS1.RecordCount do
    begin
      NIM:=DS1.FieldByName('NIM').AsInteger;
      Nama:=DS1.FieldByName('Nama').AsString;
      Nilai:=DS1.FieldByName('Nilai').AsInteger;
      {tulis ke memo}
      mm.Lines.Add(CombineField(Nim, Nama, Nilai));  
      DS1.Next;
    end;
    {kalau sudah di memo semua tinggal export isinya ke teks file}
  end;
end;
Smoga bermanfaat........
user image
more 12 years ago

gembel_retro

Alhamdulillah terima kasih atas solusinya, semoga doa dan cita-cita mas_kofa dikabulkan oleh yang Maha Kuasa Amiinn :) btw, tadi sempet bingung juga dengan error pada fungsi DupeString ternyata nyari di forum ini ada solusinya yaitu di tambahkan dulu StrUtils di bagian Uses-nya. Saya mo tanya lagi ya (bolehkan,ya, ya,ya :D ) Berapa maksimum record yg bisa ditampung oleh TMemo? saya asumsikan record di database berjumlah 700 ribu record apakah nanti bermasalah atau tidak? sekali lagi Jazakallah khairan katsiro,terima kasih banyak, matur nuwun
user image
more 12 years ago

mas_kofa

1. Alhamdulillah, Amien atas Do'anya...dan Terima Kasih.. 2. TMemo berisi TStrings, TStrings adalah kumpulan dari string, dimana sebuah string mampu menampung data hingga 1 GB..., saya kira cukup untuk menyimpan data 700 ribu record..., tp resikonya aplikasi jd lambat...
more ...
  • Pages:
  • 1
Share to

Random Topic

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com