Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
karakter değiştirme-eş zamanlı ?
#1
Question 
iyi günler,

edit'e yazdığım karakterleri diğer edit' de nasıl eş zamanlı olarak değiştirebilirim ?

örn : edit1 de A ise edit2  de 1 olması gibi...

örn : abc ise 123 olması gibi...
                Bu Ülkede Yaşamak ;
           Linux Kadar Özgürlükçüdür 
                             Ama 
     Windows Arayüzüne Alışmışsındır 
                          Bir Kere...
Cevapla
#2
umarım soru bu kadar basit değildir , istediğin bu mudur ?

procedure TForm26.Edit1Change(Sender: TObject);
begin
 Edit2.Text := Edit1.Text;
end;
blog.yakupulutas.com
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#3
(05-07-2018, Saat: 12:04)yhackup Adlı Kullanıcıdan Alıntı: umarım soru bu kadar basit değildir , istediğin bu mudur ?

procedure TForm26.Edit1Change(Sender: TObject);
begin
 Edit2.Text := Edit1.Text;
end;


hayır hocam siz baya farklı algılamışsınız sanırım  Smile

demek istediğim edit'e girdiğim karakterleri diğer editte değiştirerek göstermesi...

daha doğrusu amacım ; kendi şifreleme sistemimi oluşturmak.
 
alfabedeki karakterlerle benim tanımlayacağım karakterler yer değiştirecek.

örneğin kullanıcı edit'e admin yazdığında diğer editte qwerty gibi değişiklik yapmak istiyorum.

umarım anlaşılır olmuştur hocam.
                Bu Ülkede Yaşamak ;
           Linux Kadar Özgürlükçüdür 
                             Ama 
     Windows Arayüzüne Alışmışsındır 
                          Bir Kere...
Cevapla
#4
Korktum bir an Smile

Replace işini görmez mi ?
blog.yakupulutas.com
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#5
İki tane dizi olusturulabir. 1.dizi de harfler ABCÇ... ikinci dizide de her harfin karşılığı olan harf veya sayı.
1. edit bileseninde bir tuşuna basıldığında o karekter alinip birinci dizide kacinci index e geldiği bulunur sonrada ikinci dizide bu index teki veri alinip ikinci edit a eklenir.
Böyle birşey belki isinizi gorur.


Örnek hazırladım. Doğru anladıysam çalışıyor.

procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);
const harfler : array[0..6] of string =
   (
     'A', 'B', 'C', 'D',
     'E','F','H'
   ) ;
const karsilik : array[0..6] of string =
   (
     '1', '2', '3', '4',
     '5','6','7'
   ) ;

var i:Integer;
begin
 for i := Low(harfler) to High(harfler) do
  if (harfler[i] = Key) then
  begin
    edit2.Text:= Edit2.Text + karsilik[i];
    BREAK;
  end;

end;
Cevapla
#6
(05-07-2018, Saat: 14:03)klavye Adlı Kullanıcıdan Alıntı: İki tane dizi olusturulabir. 1.dizi de harfler ABCÇ... ikinci dizide de her harfin karşılığı olan harf veya sayı.
1. edit bileseninde bir tuşuna basıldığında o karekter alinip birinci dizide kacinci index e geldiği bulunur sonrada ikinci dizide bu index teki veri alinip ikinci edit a eklenir.
Böyle birşey belki isinizi gorur.


Örnek hazırladım. Doğru anladıysam çalışıyor.

procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);
const harfler : array[0..6] of string =
   (
     'A', 'B', 'C', 'D',
     'E','F','H'
   ) ;
const karsilik : array[0..6] of string =
   (
     '1', '2', '3', '4',
     '5','6','7'
   ) ;

var i:Integer;
begin
 for i := Low(harfler) to High(harfler) do
  if (harfler[i] = Key) then
  begin
    edit2.Text:= Edit2.Text + karsilik[i];
    BREAK;
  end;

end;


teşekkürler tam istediğim şey

(05-07-2018, Saat: 13:36)yhackup Adlı Kullanıcıdan Alıntı: Korktum bir an Smile

Replace işini görmez mi ?

evet zaten istediğimde oydu fakat girilen ilk karakter için işlem yaptıabiliyodum yeteri bilgi edinemediğim için  Shy
 @klavye 'nin verdiği örnek işimi gördü

ve ben de kendimden şüphe ettim bi an siz öyle bir cevap yazınca  Smile
                Bu Ülkede Yaşamak ;
           Linux Kadar Özgürlükçüdür 
                             Ama 
     Windows Arayüzüne Alışmışsındır 
                          Bir Kere...
Cevapla
#7
Sadece metnin gözle okunmasını engellemek istiyorsan basit Rot13 algoritmasını bulabilirsin.
İngilizcedeki 26 harfin yarısını diğer yarısıyla eşliyor ve her çalıştığında tersine-düzüne dönüyor.
Gerçi pek algoritma sayılmaz ama basit bir yöntem işte.
Cevapla
#8
(07-07-2018, Saat: 02:17)ssahinoglu Adlı Kullanıcıdan Alıntı: Sadece metnin gözle okunmasını engellemek istiyorsan basit Rot13 algoritmasını bulabilirsin.
İngilizcedeki 26 harfin yarısını diğer yarısıyla eşliyor ve her çalıştığında tersine-düzüne dönüyor.
Gerçi pek algoritma sayılmaz ama basit bir yöntem işte.

kendi algoritmamın olması daha sağlıklı ve güvenli sonuç verir diye düşünüyorum.

bilgi ve öneri için teşekkürler
                Bu Ülkede Yaşamak ;
           Linux Kadar Özgürlükçüdür 
                             Ama 
     Windows Arayüzüne Alışmışsındır 
                          Bir Kere...
Cevapla
#9
(05-07-2018, Saat: 14:03)klavye Adlı Kullanıcıdan Alıntı: İki tane dizi olusturulabir. 1.dizi de harfler ABCÇ... ikinci dizide de her harfin karşılığı olan harf veya sayı.
1. edit bileseninde bir tuşuna basıldığında o karekter alinip birinci dizide kacinci index e geldiği bulunur sonrada ikinci dizide bu index teki veri alinip ikinci edit a eklenir.
Böyle birşey belki isinizi gorur.


Örnek hazırladım. Doğru anladıysam çalışıyor.

procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);
const harfler : array[0..6] of string =
   (
     'A', 'B', 'C', 'D',
     'E','F','H'
   ) ;
const karsilik : array[0..6] of string =
   (
     '1', '2', '3', '4',
     '5','6','7'
   ) ;

var i:Integer;
begin
 for i := Low(harfler) to High(harfler) do
  if (harfler[i] = Key) then
  begin
    edit2.Text:= Edit2.Text + karsilik[i];
    BREAK;
  end;

end;


kodu Edit1KeyPress harici buton vs. gibi bileşenlere ekleyince Key uyarısı veriyor nasıl çözebilirim ?

basittir belki ama yinede bilmediğim için sordum  Shy
                Bu Ülkede Yaşamak ;
           Linux Kadar Özgürlükçüdür 
                             Ama 
     Windows Arayüzüne Alışmışsındır 
                          Bir Kere...
Cevapla
#10
(07-07-2018, Saat: 21:17)BY-HAYALET Adlı Kullanıcıdan Alıntı:
(05-07-2018, Saat: 14:03)klavye Adlı Kullanıcıdan Alıntı: İki tane dizi olusturulabir. 1.dizi de harfler ABCÇ... ikinci dizide de her harfin karşılığı olan harf veya sayı.
1. edit bileseninde bir tuşuna basıldığında o karekter alinip birinci dizide kacinci index e geldiği bulunur sonrada ikinci dizide bu index teki veri alinip ikinci edit a eklenir.
Böyle birşey belki isinizi gorur.


Örnek hazırladım. Doğru anladıysam çalışıyor.

procedure TForm4.Edit1KeyPress(Sender: TObject; var Key: Char);
const harfler : array[0..6] of string =
   (
     'A', 'B', 'C', 'D',
     'E','F','H'
   ) ;
const karsilik : array[0..6] of string =
   (
     '1', '2', '3', '4',
     '5','6','7'
   ) ;

var i:Integer;
begin
 for i := Low(harfler) to High(harfler) do
  if (harfler[i] = Key) then
  begin
    edit2.Text:= Edit2.Text + karsilik[i];
    BREAK;
  end;

end;


kodu Edit1KeyPress harici buton vs. gibi bileşenlere ekleyince Key uyarısı veriyor nasıl çözebilirim ?

basittir belki ama yinede bilmediğim için sordum  Shy

buradaki key değişkeni edit1keypress fonksiyonuna ait olduğundan başka yerde kullanınca hata verecektir.

Girilen bilgileri şifrelemek lazım olunca açmak için aşağıdaki fonksiyonları  kullanabilirsin.

// string sifrele veya cöz
function Decode(const S: AnsiString): AnsiString;
var
 I: LongInt;
begin
 case Length(S) of
   2:
     begin
       I := Map[S[1]] + (Map[S[2]] shl 6);
       SetLength(Result, 1);
       Move(I, Result[1], Length(Result))
     end;
   3:
     begin
       I := Map[S[1]] + (Map[S[2]] shl 6) + (Map[S[3]] shl 12);
       SetLength(Result, 2);
       Move(I, Result[1], Length(Result))
     end;
   4:
     begin
       I := Map[S[1]] + (Map[S[2]] shl 6) + (Map[S[3]] shl 12) +
         (Map[S[4]] shl 18);
       SetLength(Result, 3);
       Move(I, Result[1], Length(Result))
     end
 end
end;

function PreProcess(const S: AnsiString): AnsiString;
var
 SS: AnsiString;
begin
 SS := S;
 Result := '';
 while SS <> '' do
 begin
   Result := Result + Decode(Copy(SS, 1, 4));
   Delete(SS, 1, 4)
 end
end;

function InternalDecrypt(const S: AnsiString; Key: Word): AnsiString;
var
 I: Word;
 Seed: Word;
begin
 Result := S;
 Seed := Key;
 for I := 1 to Length(Result) do
 begin
   Result[I] := Ansichar(Byte(Result[I]) xor (Seed shr 8));
   Seed := (Byte(S[I]) + Seed) * Word(C1) + Word(C2)
 end
end;

function Decrypt(const S: AnsiString; Key: Word): AnsiString; export;
begin
 Result := InternalDecrypt(PreProcess(S), Key)
end;

function Encode(const S: AnsiString): AnsiString;
const
 Map: array [0 .. 63] of Ansichar = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +
   'abcdefghijklmnopqrstuvwxyz0123456789+/';
var
 I: LongInt;
begin
 I := 0;
 Move(S[1], I, Length(S));
 case Length(S) of
   1:
     Result := Map[I mod 64] + Map[(I shr 6) mod 64];
   2:
     Result := Map[I mod 64] + Map[(I shr 6) mod 64] + Map[(I shr 12) mod 64];
   3:
     Result := Map[I mod 64] + Map[(I shr 6) mod 64] + Map[(I shr 12) mod 64] + Map[(I shr 18) mod 64]
 end
end;

function PostProcess(const S: AnsiString): AnsiString;
var
 SS: AnsiString;
begin
 SS := S;
 Result := '';
 while SS <> '' do
 begin
   Result := Result + Encode(Copy(SS, 1, 3));
   Delete(SS, 1, 3)
 end
end;

function InternalEncrypt(const S: AnsiString; Key: Word): AnsiString;
var
 I: Word;
 Seed: Word;
begin
 Result := S;
 Seed := Key;
 for I := 1 to Length(Result) do
 begin
   Result[I] := Ansichar(Byte(Result[I]) xor (Seed shr 8));
   Seed := (Byte(Result[I]) + Seed) * Word(C1) + Word(C2)
 end
end;

function Encrypt(const S: AnsiString; Key: Word): AnsiString;export;
begin
 Result := PostProcess(InternalEncrypt(S, Key))
end;

kullanımı 

Encrypt(sifrelenencek_string, sifre_anahtarı);  // sifrelemek çin

decrypt(cözülecek_string, sifre_anahtarı);      // açmak için

string hangi sifre_anahtarı ile sifrelenirse sadece o anahtarla açılır sifre anahtarı Dword cinsinden olmalı

işine yararsa takıldığınız yerleri sorabilirsiniz
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Metin içeriğinde geçersiz karakter bulundu m_ekici 5 139 17-04-2019, Saat: 11:50
Son Yorum: m_ekici
  Combobox Item Stil değiştirme mcuyan 4 304 13-02-2019, Saat: 19:56
Son Yorum: mcuyan
  Türkçe karakter Dostk 5 907 08-02-2019, Saat: 11:09
Son Yorum: sabanakman
  IOS unidac Türkçe karakter sorunu hassur 10 3.007 30-01-2019, Saat: 16:24
Son Yorum: pro_imaj
  Karakter ekleme dilo 6 660 21-07-2018, Saat: 15:27
Son Yorum: Halil Han Badem



Konuyu Okuyanlar: 1 Ziyaretçi