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...
Hayat bakış açına göredir ; Baktığında gördüğün görmeni istedikleridir...
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;
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#3
(05-07-2018, Saat: 12:04)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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.
Hayat bakış açına göredir ; Baktığında gördüğün görmeni istedikleridir...
Cevapla
#4
Korktum bir an Smile

Replace işini görmez mi ?
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.İ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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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
Hayat bakış açına göredir ; Baktığında gördüğün görmeni istedikleridir...
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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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
Hayat bakış açına göredir ; Baktığında gördüğün görmeni istedikleridir...
Cevapla
#9
(05-07-2018, Saat: 14:03)klavye Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.İ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
Hayat bakış açına göredir ; Baktığında gördüğün görmeni istedikleridir...
Cevapla
#10
(07-07-2018, Saat: 21:17)BY-HAYALET Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(05-07-2018, Saat: 14:03)klavye Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.İ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 269 17-04-2019, Saat: 11:50
Son Yorum: m_ekici
  Combobox Item Stil değiştirme mcuyan 4 421 13-02-2019, Saat: 19:56
Son Yorum: mcuyan
  Türkçe karakter Dostk 5 1.019 08-02-2019, Saat: 11:09
Son Yorum: sabanakman
  IOS unidac Türkçe karakter sorunu hassur 10 3.106 30-01-2019, Saat: 16:24
Son Yorum: pro_imaj
  Karakter ekleme dilo 6 767 21-07-2018, Saat: 15:27
Son Yorum: Halil Han Badem



Konuyu Okuyanlar: 1 Ziyaretçi