AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Doppelte Buchstaben aus String auslesen

Ein Thema von SirMaurice · begonnen am 17. Mai 2019 · letzter Beitrag vom 4. Jun 2019
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.507 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Doppelte Buchstaben aus String auslesen

  Alt 17. Mai 2019, 21:40
Ich bräuchte tatsächlich nur 26 Buchstaben.
Na dann...
Delphi-Quellcode:
function StripDoubleChars(const Source: string): string;
var
  C: AnsiChar;
  cSet: set of 'A'..'Z';
  I: Integer;
begin
  cSet := [];
  Result := '';
  for I := 1 to Length(Source) do begin
    C := AnsiChar(UpCase(Source[I]));
    if not (C in ['A'..'Z']) then Continue;
    if not (C in cSet) then begin
      Include(cSet, C);
      Result := Result + Source[I];
    end;
  end;
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
SirMaurice

Registriert seit: 7. Dez 2018
Ort: Berlin
16 Beiträge
 
Delphi 5 Enterprise
 
#12

AW: Doppelte Buchstaben aus String auslesen

  Alt 22. Mai 2019, 16:40
Passwort ist unglücklich gewählt.

Ich muss es nicht verschlüsseln, geht mir nur darum aus einem String die doppelt vorkommenden Zeichen zu entfernen.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.123 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Doppelte Buchstaben aus String auslesen

  Alt 22. Mai 2019, 16:50
Hallo,
ich würde einfach eine TStringList SL nehmen.

Der String wird durchlaufen, jedes Zeichen wird geprüft, ob es bereits in SL ist (IndexOf),
wenn ja, verwerfen, wenn nein rein in die SL.
Heiko
  Mit Zitat antworten Zitat
SirMaurice

Registriert seit: 7. Dez 2018
Ort: Berlin
16 Beiträge
 
Delphi 5 Enterprise
 
#14

AW: Doppelte Buchstaben aus String auslesen

  Alt 22. Mai 2019, 17:48
An sich ne gute Idee, ich darf nur den String nicht sortieren, sonst ist ja mein String nachher ein anderer.

Weiterhin habe ich nicht wirklich eine Ahnung von Properties und wie man diese festlegt.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.123 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Doppelte Buchstaben aus String auslesen

  Alt 22. Mai 2019, 18:27
Hallo,
ich habe nichts von Sortierung gesagt.
Und was ist mit Properties?

Pseudo-Code:

Delphi-Quellcode:
S2:= '';
for i=1 to Length(AString) do
begin
  AChar=Copy(AString,i,1);
  if SL.IndexOf(AChar)=-1 then
  begin
    // noch nicht vorhanden
    S2:= S2+AChar;
  end;
  SL.Add(AChar);
end;
Heiko

Geändert von hoika (22. Mai 2019 um 18:31 Uhr)
  Mit Zitat antworten Zitat
SirMaurice

Registriert seit: 7. Dez 2018
Ort: Berlin
16 Beiträge
 
Delphi 5 Enterprise
 
#16

AW: Doppelte Buchstaben aus String auslesen

  Alt 22. Mai 2019, 18:31
Zitat:
Code:
function StripDoubleChars(const Source: string): string;
var
  C: AnsiChar;
  cSet: set of 'A'..'Z';
  I: Integer;
begin
  cSet := [];
  Result := '';
  for I := 1 to Length(Source) do begin
    C := AnsiChar(UpCase(Source[I]));
    if not (C in ['A'..'Z']) then Continue;
    if not (C in cSet) then begin
      Include(cSet, C);
      Result := Result + Source[I];
    end;
  end;
end;

Ich schaffs nicht das ganze zu implementieren. Brauche theoretisch das ganze als Prozedur.

Habe zwei Untis, eine für die oberfläche, die andere für die Umwandlung.

Ich weiß nicht so ganz ob mein Aufruf hier richtig ist.

Code:
procedure TCaesar.SetPassword(ps2: string);
 var
  i: integer;
begin
  ps:='';
  ps2:=UpperCase(ps2);
  for i:=1 to length(ps2) do begin
    case ps2[i] of
      'A'..'Z': ps:=ps + ps2[i];
      'Ä': ps:=ps + 'A';
      'Ö': ps:=ps + 'O';
      'Ü': ps:=ps + 'U';
      'ß': ps:=ps + 'S';
    end;
  end;
  [B][U]ps:= stripdoublechars(ps) ;[/U][/B]
end;

Durchläuft er dann den obengenannten Prozess und dann die Function StripDoubleCharacters?
  Mit Zitat antworten Zitat
SirMaurice

Registriert seit: 7. Dez 2018
Ort: Berlin
16 Beiträge
 
Delphi 5 Enterprise
 
#17

AW: Doppelte Buchstaben aus String auslesen

  Alt 22. Mai 2019, 18:39
Zitat:
function StripDoubleChars(const Source: string): string;
var
C: AnsiChar;
cSet: set of 'A'..'Z';
I: Integer;
begin
cSet := [];
Result := '';
for I := 1 to Length(Source) do begin
C := AnsiChar(UpCase(Source[I]));
if not (C in ['A'..'Z']) then Continue;
if not (C in cSet) then begin
Include(cSet, C);
Result := Result + Source[I];
end;
end;
end;

Brauche das ganze als Prozedur oder jemand müsste mir sagen, ob der Aufruf unten korrekt ist:

Code:
procedure TCaesar.SetPassword(ps2: string);
 var
  i: integer;
begin
  ps:=ps2;
  ps2:=UpperCase(ps2);
  for i:=1 to length(ps2) do begin
    case ps2[i] of
      'A'..'Z': ps:=ps + ps2[i];
      'Ä': ps:=ps + 'A';
      'Ö': ps:=ps + 'O';
      'Ü': ps:=ps + 'U';
      'ß': ps:=ps + 'S';
    end;
  end;
  ps:= stripdoublechars(ps) ;
end;
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.657 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: Doppelte Buchstaben aus String auslesen

  Alt 22. Mai 2019, 19:00
.. wenn Du es schon TCaeser nennst.
Bei der Caeser Verschlüsslung gibt es keine Passwort.
Da wird das Alphabet nur um eine gewissen Anzahl an Buchstaben verschoben.

A würde z.B. zu E
B würde z.B. zu F
etc

Der zu verschlüsselnde Text kann sehrwohl doppelte Buchstaben enthalten.
Sie werden dann immer mit dem gleichen Buchstaben ersetzt.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
SirMaurice

Registriert seit: 7. Dez 2018
Ort: Berlin
16 Beiträge
 
Delphi 5 Enterprise
 
#19

AW: Doppelte Buchstaben aus String auslesen

  Alt 23. Mai 2019, 06:47
Oben steht doch was ich mit dem Programm vorhabe. Das Programm war ursprünglich auch mal die ganz normale Caeser Verschlüsselung, jedoch habe ich mich dazu entschlossen das Programm weiter zu entwickeln. Wie gesagt, Passwort ist eher schlecht gewählt worden.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.074 Beiträge
 
Delphi 7 Professional
 
#20

AW: Doppelte Buchstaben aus String auslesen

  Alt 23. Mai 2019, 07:59
Sowas (in PascalScript hingedaddelt)?
Delphi-Quellcode:
program Script;

function EindeutigeBuchstaben(ABuchstaben : String) : String;
var
        i : Integer;
begin
  Result := '';
  for i := 1 to Length(ABuchstaben) do begin
    if Pos(ABuchstaben[i],Result) = 0 then Result := Result + ABuchstaben[i];
  end;
end;

begin
  ShowMessage(EindeutigeBuchstaben('Erwinistdoof')); // ergibt Erwinstdof
end.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf