ABKS programı icin xml oluşturma kodları ..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
ovural
Üye
Mesajlar: 167
Kayıt: 22 Eki 2003 10:20
İletişim:

ABKS programı icin xml oluşturma kodları ..

Mesaj gönderen ovural »

xml dosyalarını oluşturmak icin DOM a cart curta gerek yok .. bildigini txt dosyasıdır ..

bu yuzden asagıdaki kod calısıyor :D

sadecece asağıdaki dosyayı md5.pas olarak kaydedin ve programınızın unit'ine ekleyin

Kod: Tümünü seç

unit md5;

interface

type
  Dizi= Array of integer;

function MD_5(str: string): string;

implementation

function rhex(num: integer): string;
var
  str,hex_chr: string;
  j: integer;
begin
  hex_chr:='0123456789abcdef';
  str:='';
  for j:=0 to 3 do
    str:=str+hex_chr[((num shr (j*8+4)) and $F)+1]+hex_chr[((num shr (j*8)) and $F)+1];
  Result:=str;
end;

function str2blks_MD5(str: string): Dizi;
var
  nblk: integer;
  blks: Dizi;
  i: integer;
begin
  nblk:=((length(str)+8) shr 6)+1;
  SetLength(blks,nblk*16);
  for i:=0 to nblk*16-1 do blks[i]:=0;
  for i:=0 to length(str)-1 do
    blks[i shr 2]:=blks[i shr 2] or ((ord(str[i+1]) shl ((i mod 4)*8)));
  blks[i shr 2]:=blks[i shr 2] or ($80 shl ((i mod 4)*8));
  blks[nblk*16-2]:=length(str)*8;
  Result:=blks;
end;

function add(x,y: integer): integer;
var
  lsw,msw: integer;
begin
  lsw:=(x and $FFFF)+(y and $FFFF);
  msw:=(x shr 16)+(y shr 16)+(lsw shr 16);
  Result:=(msw shl 16) or (lsw and $FFFF);
end;

function rol(num,cnt: integer): integer;
begin
  Result:=(num shl cnt) or (num shr (32 - cnt));
end;

function cmn(q, a, b, x, s, t: integer): integer;
begin
  Result:= add(rol(add(add(a, q), add(x, t)), s), b);
end;

function ff(a, b, c, d, x, s, t: integer): integer;
Begin
  Result:= cmn((b and c) or ((not b) and d), a, b, x, s, t);
end;

function gg(a, b, c, d, x, s, t: integer): integer;
Begin
  Result:= cmn((b and d) or (c and (not d)), a, b, x, s, t);
end;

function hh(a, b, c, d, x, s, t: integer): integer;
Begin
  Result:= cmn(b xor c xor d, a, b, x, s, t);
end;

function ii(a, b, c, d, x, s, t: integer): integer;
Begin
  Result:= cmn(c xor (b or (not d)), a, b, x, s, t);
end;

function MD_5(str: string): string;
var
  x: dizi;
  a,b,c,d,olda,oldb,oldc,oldd: integer;
  i: integer;
begin
  x:= str2blks_MD5(str);
  a:= 1732584193;
  b:= -271733879;
  c:= -1732584194;
  d:= 271733878;

  i:=0;
  while i<length(x) do
  begin
    olda := a;
    oldb := b;
    oldc := c;
    oldd := d;

    a := ff(a, b, c, d, x[i+ 0], 7 , -680876936);
    d := ff(d, a, b, c, x[i+ 1], 12, -389564586);
    c := ff(c, d, a, b, x[i+ 2], 17,  606105819);
    b := ff(b, c, d, a, x[i+ 3], 22, -1044525330);
    a := ff(a, b, c, d, x[i+ 4], 7 , -176418897);
    d := ff(d, a, b, c, x[i+ 5], 12,  1200080426);
    c := ff(c, d, a, b, x[i+ 6], 17, -1473231341);
    b := ff(b, c, d, a, x[i+ 7], 22, -45705983);
    a := ff(a, b, c, d, x[i+ 8], 7 ,  1770035416);
    d := ff(d, a, b, c, x[i+ 9], 12, -1958414417);
    c := ff(c, d, a, b, x[i+10], 17, -42063);
    b := ff(b, c, d, a, x[i+11], 22, -1990404162);
    a := ff(a, b, c, d, x[i+12], 7 ,  1804603682);
    d := ff(d, a, b, c, x[i+13], 12, -40341101);
    c := ff(c, d, a, b, x[i+14], 17, -1502002290);
    b := ff(b, c, d, a, x[i+15], 22,  1236535329);

    a := gg(a, b, c, d, x[i+ 1], 5 , -165796510);
    d := gg(d, a, b, c, x[i+ 6], 9 , -1069501632);
    c := gg(c, d, a, b, x[i+11], 14,  643717713);
    b := gg(b, c, d, a, x[i+ 0], 20, -373897302);
    a := gg(a, b, c, d, x[i+ 5], 5 , -701558691);
    d := gg(d, a, b, c, x[i+10], 9 ,  38016083);
    c := gg(c, d, a, b, x[i+15], 14, -660478335);
    b := gg(b, c, d, a, x[i+ 4], 20, -405537848);
    a := gg(a, b, c, d, x[i+ 9], 5 ,  568446438);
    d := gg(d, a, b, c, x[i+14], 9 , -1019803690);
    c := gg(c, d, a, b, x[i+ 3], 14, -187363961);
    b := gg(b, c, d, a, x[i+ 8], 20,  1163531501);
    a := gg(a, b, c, d, x[i+13], 5 , -1444681467);
    d := gg(d, a, b, c, x[i+ 2], 9 , -51403784);
    c := gg(c, d, a, b, x[i+ 7], 14,  1735328473);
    b := gg(b, c, d, a, x[i+12], 20, -1926607734);

    a := hh(a, b, c, d, x[i+ 5], 4 , -378558);
    d := hh(d, a, b, c, x[i+ 8], 11, -2022574463);
    c := hh(c, d, a, b, x[i+11], 16,  1839030562);
    b := hh(b, c, d, a, x[i+14], 23, -35309556);
    a := hh(a, b, c, d, x[i+ 1], 4 , -1530992060);
    d := hh(d, a, b, c, x[i+ 4], 11,  1272893353);
    c := hh(c, d, a, b, x[i+ 7], 16, -155497632);
    b := hh(b, c, d, a, x[i+10], 23, -1094730640);
    a := hh(a, b, c, d, x[i+13], 4 ,  681279174);
    d := hh(d, a, b, c, x[i+ 0], 11, -358537222);
    c := hh(c, d, a, b, x[i+ 3], 16, -722521979);
    b := hh(b, c, d, a, x[i+ 6], 23,  76029189);
    a := hh(a, b, c, d, x[i+ 9], 4 , -640364487);
    d := hh(d, a, b, c, x[i+12], 11, -421815835);
    c := hh(c, d, a, b, x[i+15], 16,  530742520);
    b := hh(b, c, d, a, x[i+ 2], 23, -995338651);

    a := ii(a, b, c, d, x[i+ 0], 6 , -198630844);
    d := ii(d, a, b, c, x[i+ 7], 10,  1126891415);
    c := ii(c, d, a, b, x[i+14], 15, -1416354905);
    b := ii(b, c, d, a, x[i+ 5], 21, -57434055);
    a := ii(a, b, c, d, x[i+12], 6 ,  1700485571);
    d := ii(d, a, b, c, x[i+ 3], 10, -1894986606);
    c := ii(c, d, a, b, x[i+10], 15, -1051523);
    b := ii(b, c, d, a, x[i+ 1], 21, -2054922799);
    a := ii(a, b, c, d, x[i+ 8], 6 ,  1873313359);
    d := ii(d, a, b, c, x[i+15], 10, -30611744);
    c := ii(c, d, a, b, x[i+ 6], 15, -1560198380);
    b := ii(b, c, d, a, x[i+13], 21,  1309151649);
    a := ii(a, b, c, d, x[i+ 4], 6 , -145523070);
    d := ii(d, a, b, c, x[i+11], 10, -1120210379);
    c := ii(c, d, a, b, x[i+ 2], 15,  718787259);
    b := ii(b, c, d, a, x[i+ 9], 21, -343485551);

    a := add(a, olda);
    b := add(b, oldb);
    c := add(c, oldc);
    d := add(d, oldd);

    inc(i,16);
  end;
  Result:= rhex(a) + rhex(b) + rhex(c) + rhex(d);
end;

end.

Kod: Tümünü seç

function buyukharf(str:string):string;
var i:integer;
Begin
    for i:=1 to length(str) Do
       case str[i] of
        'i':str[i]:='İ';
        'ı':str[i]:='I';
        'ş':str[i]:='Ş';
        'ğ':str[i]:='Ğ';
        'ü':str[i]:='Ü';
        'ö':str[i]:='Ö';
        'ç':str[i]:='Ç';
        else str[i]:=upcase(str[i]);
       End;
    Result:=str;
End;


procedure TForm1.Button1Click(Sender: TObject);
var f:Textfile;
s:string;
i:integer;
procedure ekle(str:string);
Begin
        s:=s+str+#13#10;
        Memo1.Lines.Add(str);
end;
begin
    qr.SQL.Text:='Select * From kimlikTBL Where giris_tarihi="'+DateToStr(DateTimePicker1.Date)+'"';
    qr.Open;
    if qr.RecordCount=0 Then
    Begin
        Application.MessageBox('Bügüne Kayıtlı Müşteri Yok'+#13+'XML Dosyası oluşturulamaz','Dikkat',0+16);
        Exit;
    end;
    Memo1.Lines.Clear;
    s:='';
        ekle('<Konaklama');
        ekle('   TesisKodu=1111'); // buraya tesisin kodunu girersiniz .. 
        ekle('   Tarih="'+copy(DateToStr(DateTimePicker1.Date),7,4)+'-'+copy(DateToStr(DateTimePicker1.Date),4,2)+'-'+copy(DateToStr(DateTimePicker1.Date),1,2)+' '+TimeToStr(Time)+'"'); // buradaki datetimepicker1 hangi gun icin alındı ise artık takılın kafanıza gore .. 
        ekle('   GonderenProgram="'+Programismi+'"'); // programınızın ismi :D 
        ekle('   GonderenProgramVersiyon="'+programversiyon+'">'); // versiyonu ..  veri tabanından okuyorsunuz kabul ediyorum ... alan isimleride bendeki alan isimleri sizin veritabanınızdakini koyarsnız ..
    While Not qr.Eof Do
    Begin
          ekle('   <Kisi');
          ekle('       SiraNo="'+IntToStr(qr.RecNo)+'"');
          ekle('       TCKimlikNo="'+qr.FieldByName('kimlik_no').AsString+'"');
          ekle('       Adi="'+qr.FieldByName('ad').AsString+'"');
          ekle('       Soyadi="'+qr.FieldByName('soyad').AsString+'"');
          ekle('       BabaAdi="'+qr.FieldByName('baba_adi').AsString+'"');
          if qr.FieldByName('ana_adi').AsString='' Then
                  ekle('       AnaAdi="yok"')
          else
                  ekle('       AnaAdi="'+qr.FieldByName('ana_adi').AsString+'"');
          ekle('       DogumYeri="'+qr.FieldByName('dogum_yeri').AsString+'"');
          ekle('       DogumTarihi="'+copy(qr.FieldByName('dogum_tarihi').AsString,7,4)+'-'+copy(qr.FieldByName('dogum_tarihi').AsString,4,2)+'-'+copy(qr.FieldByName('dogum_tarihi').AsString,1,2)+'"');
          ekle('       Uyrugu="'+qr.FieldByName('uyruk').AsString+'"');
          ekle('       KimlikBelgesiTuru="'+qr.FieldByName('kimlik_turu').AsString+'"');
          ekle('       KimlikSeriNo="'+qr.FieldByName('kimlik_seri_no').AsString+'"');
          ekle('       NufusaKayitliOlduguIl="'+qr.FieldByName('n_il').AsString+'"');
          ekle('       NufusaKayitliOlduguIlce="'+qr.FieldByName('n_ilce').AsString+'"');
          ekle('       NufusaKayitliOlduguMahalle="'+qr.FieldByName('n_mahalle').AsString+'"');
          ekle('       NufusCilt="'+qr.FieldByName('n_ciltno').AsString+'"');
          ekle('       NufusAileSira="'+qr.FieldByName('n_aile').AsString+'"');
          ekle('       NufusSiraNo="'+qr.FieldByName('n_sira').AsString+'"');
          ekle('       Cinsiyet="'+qr.FieldByName('cinsiyet').AsString+'"');
          ekle('       MedeniHali="'+qr.FieldByName('medeni_hal').AsString+'"');
          ekle('       Isi="'+qr.FieldByName('meslek').AsString+'"');
          ekle('       IkametAdresi="'+qr.FieldByName('adres').AsString+'"');
          ekle('       GelisTarihi="'+copy(qr.FieldByName('giris_tarihi').asString,7,4)+'-'+copy(qr.FieldByName('giris_tarihi').asString,4,2)+'-'+copy(qr.FieldByName('giris_tarihi').asString,1,2)+' '+qr.FieldByName('giris_saati').asString+'"');
          ekle('       AyrilisTarihi="'+copy(qr.FieldByName('ayrilis_tarihi').asString,7,4)+'-'+copy(qr.FieldByName('ayrilis_tarihi').asString,4,2)+'-'+copy(qr.FieldByName('ayrilis_tarihi').asString,1,2)+' '+qr.FieldByName('ayrilis_saati').asString+'"');
          ekle('       VerilenOdaNo="'+qr.FieldByName('oda_no').AsString+'"');
          ekle('       AracPlakaNo="'+qr.FieldByName('plaka').AsString+'"/>');
        qr.Next;
    end;
    qr.First;
    ekle('       </Konaklama>');
    if Not DirectoryExists(ExtractFilePath(Application.exename)+'xml') Then
      mkdir(ExtractFilePath(Application.exename)+'xml');
    AssignFile(f,ExtractFilePath(Application.ExeName)+'xml\gonder'+copy(DateToStr(DateTimePicker1.Date),7,4)+'-'+copy(DateToStr(DateTimePicker1.Date),4,2)+'-'+copy(DateToStr(DateTimePicker1.Date),1,2)+'.xml');
    Rewrite(f);
    Writeln(f,'<?xml version="1.0" encoding="iso-8859-9"?>');
    Writeln(f,'<?hash '+buyukharf(md_5(s))+'?>');
    for i:=0 to Memo1.Lines.Count-1 do
        Writeln(f,Memo1.Lines.Strings[i]);
    Closefile(f);
    Application.MessageBox(PChar('gonder'+copy(DateToStr(DateTimePicker1.Date),7,4)+'-'+copy(DateToStr(DateTimePicker1.Date),4,2)+'-'+copy(DateToStr(DateTimePicker1.Date),1,2)+'.xml dosyası tamamlandı'),'Dikkat',0+64);
end;

Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

eywallah kodu denemedim henüz ama sanırım beni büyük bir uğraştan kurtardın :lol:
tanx
DeveloperToolKit

..::|YeşilMavi|::..
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

ben sırf bunu için programdan vazgeçmiştim ama tekrar kolları sıvayacağız anlaşılan :lol:
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
ovural
Üye
Mesajlar: 167
Kayıt: 22 Eki 2003 10:20
İletişim:

Mesaj gönderen ovural »

valla bende ABKS ile ugrasmamıstım .. bir arkadas istedi yogunluktan aralara sıkıştırdım .. bende denemedim ama arkadaş gittigini soyledi .. :D



bu kadar ihtiyac oldugunu bilseydim daha onceden atardım ...
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

hocam kodu deneyen var mı?
bu kodla üretilen kodlar türkçe karakterler işin içine girdiği zaman
http://pajhome.org.uk/crypt/md5/index.html
sayfasındaki ile aynı sonucu mu veriyor.
Kullanıcı avatarı
ovural
Üye
Mesajlar: 167
Kayıt: 22 Eki 2003 10:20
İletişim:

Mesaj gönderen ovural »

ben denememiştim .. yaptıgım arkadas denemişti sıkıntı yok ..


sonra ben baska birisine verdim oda sorun yok dedi ..

kendim otel programı yazmadıgım icin bilmiyorum ..

ama 2. verdigim kisiye excelden veri alacak sekilde yaptım .. calısıyor dedi ..
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

hocam kodu deneyen var mı?
bu kodla üretilen kodlar türkçe karakterler işin içine girdiği zaman
http://pajhome.org.uk/crypt/md5/index.html
sayfasındaki ile aynı sonucu mu veriyor.

ben denedim çalışıyor

ordaki ile karşılaştırmadım ama çalışıyor

şu an bi otel yazılım hazırlıyorum orda kullandım

denilen sdayfada deneyeceğim :lol:
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
ovural
Üye
Mesajlar: 167
Kayıt: 22 Eki 2003 10:20
İletişim:

Mesaj gönderen ovural »

programını bizede gondersen bizde baksak .. :D
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

ovural yazdı:programını bizede gondersen bizde baksak .. :D

program tamamlandığı zaman linkini buraya koyacağım

bundan emin olabilirsiniz...
:lol:
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

oluşturduğumuz xml dosyasını nasıl göndeririz ? akbs programını kullanmak zorundamıyız. yani soap kullanarak biz gönderemezmiyiz.
DeveloperToolKit

..::|YeşilMavi|::..
Kullanıcı avatarı
ovural
Üye
Mesajlar: 167
Kayıt: 22 Eki 2003 10:20
İletişim:

Mesaj gönderen ovural »

valla o kadar bilgim yok .. cunku otel programları ile ilgilenmedim hic ..
onu emniyetten ogrenebilirsiniz sanırım ..
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Hash

Mesaj gönderen kimene »

arkadaşlar hash oluşturmak için md_5 unit ini nereden buluyorsunuz
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Mesaj gönderen selm@n »

yukarıda @ovural arkadışımızın ilk yazdığı cevapta;
sadecece asağıdaki dosyayı md5.pas olarak kaydedin ve programınızın unit'ine ekleyin
yazan yerin altındaki kodlar md5 yapmak için;

Kolay gelsin;
;)
Kullanıcı avatarı
kimene
Üye
Mesajlar: 78
Kayıt: 28 Haz 2003 02:39
Konum: İstanbul

Mesaj gönderen kimene »

kodların o işe yaradığını anladım da, bu kodları kim yazıyor ve siz nereden buluyorsunuz. bir de bir şey sorucam , veritabanındaki kayıtlarla oynayıp (gerçekliğiyle) hash ettikten sonra hash kodu ne işe yarar. sonuçta bu güvenlik için değilmidir. kullanıcı veritabanını değiştirir ve kodu oluşturur , bu durumu da emniyetin kodları hash ile istemenin ne anlamı kalır.

kolay gelsin
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@kimene

- Şimdi Güvenlik ve Emniyet kelimeleri yanyana gelince sen de doğal olarak veri güvenliğininin çalınmaya karşı olduğu gibi bir kanıya vardığını görüyorum...

- Buradaki güvenlik, parametre ile veya XML içerisinde gönderilen bilgilerin önemsendiği ve bu bilgilerin karşı tarafa doğru ulaştırıldığının teyidi için kontrol mekanizması oluşturmak olduğunu belirtmek istedim... :)

- Yani basit bir anlatımla A harfini aynı zamanda 123 olarak tanımlandığını varsayarsak; karşı tarafa hem A hem de 123 gönderilir. Karşı taraf 123'ü çözümleyip A bulacak ve A = A olduğu için doğru veri kaynaktaki ile aynı olduğu teyid edilmiş olacak... :idea:
Resim
Resim ....Resim
Cevapla