Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi zahl durch ein Zeichen ersetzen ? (https://www.delphipraxis.net/114637-zahl-durch-ein-zeichen-ersetzen.html)

Delphiturbo 28. Mai 2008 15:44


zahl durch ein Zeichen ersetzen ?
 
Hallo

ich möchte das Zeichen 0 durch x und da Zeichen 1 durch n ersetzen
aber nur die letzte 2 Zeichen
ss spielt keine Rolle

Beispiel :
Zahl=000-ss soll Zahl=000-xx
Zahl=001-ss soll Zahl=001-xn
Zahl=011-ss soll Zahl=011-nn

Delphi-Quellcode:
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
  Edit1.Text := Format('Zahl=' + '%.3d' + '-' + 'ss', [UpDown1.Position]);
end;

procedure TForm1.Edit1Change(Sender: TObject);
var
i: Integer;
zeichen: String;
begin
for i := 6 to 7 do
zeichen:=Edit1.Text[i];
if zeichen = '0' then
zeichen:='x';
if zeichen = '1' then
zeichen:='n';

Edit2.Text:= // das Ergebnis soll in Edit 2 angezeigt werden

end;
end.

DeddyH 28. Mai 2008 15:49

Re: zahl durch ein Zeichen ersetzen ?
 
Erstmal fehlen da begin und end. Und es nützt ja nichts, nur das Zeichen zu ersetzen, wenn Du keine Kopie des Originalstrings anlegst :zwinker:

calculon 28. Mai 2008 15:50

Re: zahl durch ein Zeichen ersetzen ?
 
Zitat:

Zitat von Delphiturbo
Hallo

ich möchte das Zeichen 0 durch x und da Zeichen 1 durch n ersetzen
aber nur die letzte 2 Zeichen
ss spielt keine Rolle

Beispiel :
Zahl=000-ss soll Zahl=000-xx
Zahl=001-ss soll Zahl=001-xn
Zahl=011-ss soll Zahl=011-nn

Kapier' ich nicht. In deinem Beispiel ersetzt du 0 gar nicht durch x und 1 auch nicht durch n, sondern du passt ss ausgehend von den vorherigen Zeichen an.

Sherlock 28. Mai 2008 15:52

Re: zahl durch ein Zeichen ersetzen ?
 
Ich warte noch eine weitergehende Erklärung ab, vor einem Schubs in die richtige Richtung.

*Gespanntbin*

Sherlock

NickelM 28. Mai 2008 16:32

Re: zahl durch ein Zeichen ersetzen ?
 
Ich würde es mal so versuchen :

Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var
i: Integer;
zeichen: String;
StringVoll : String;
begin
StringVoll := Edit1.Text; // erstmal kompletten string speichern
for i := 6 to 7 do
zeichen:=Edit1.Text[i];
if zeichen = '0' then // zeichen im vollenstring ändern
StringVoll[i] :='x';
if zeichen = '1' then
StringVoll[i] :='n'
end;
Edit2.Text := StringVoll; // dann geänderter string rausgeben;

end;

DeddyH 28. Mai 2008 16:43

Re: zahl durch ein Zeichen ersetzen ?
 
Was soll denn hier herauskommen?
Zitat:

Delphi-Quellcode:
for i := 6 to 7 do
  zeichen:=Edit1.Text[i];

Edit1.Text[7], oder? Wozu dann die Schleife?

NickelM 28. Mai 2008 16:48

Re: zahl durch ein Zeichen ersetzen ?
 
neee bei Edit1.Text[1] z.b. kommt das erste zeichen den strings Text :zwinker:
Wenn man sagt
Delphi-Quellcode:
String := 'Hallo';
Test := String[1]
//vorausgesetzt beide test und string sind string typ kommt folgendes raus
Test := 'H';

DeddyH 28. Mai 2008 16:50

Re: zahl durch ein Zeichen ersetzen ?
 
Nochmal, ohne Blockbildung mit begin und end macht die Schleife keinen Sinn, weil "zeichen" immer wieder überschrieben wird. Jetzt klar, was ich meine?

Delphiturbo 28. Mai 2008 18:52

Re: zahl durch ein Zeichen ersetzen ?
 
Ich habe das Problem gelöst :firejump:
aber mit einem lagen Code
Also ich möchte nur letzte 2 Zeichen durch bestimmte Buchstaben ersetzen :

Vielleicht kann jamand den Code verkürzen :mrgreen:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
var
//i : Integer;
feld1, l1,l2,l3,zeichen1,zeichen2: String;
begin
feld1:=Edit1.Text;

//for i:=0 to 10 do
l1 := Feld1[1];
l2 := Feld1[2];
l3 := Feld1[3];

if l2='0' then
    zeichen1:='a';
if l2='1' then
    zeichen1:='b';
if l2='2' then
    zeichen1:='c';
if l2='3' then
    zeichen1:='d';
if l2='4' then
    zeichen1:='e';
if l2='5' then
    zeichen1:='f';
if l2='6' then
    zeichen1:='g';
if l2='7' then
    zeichen1:='h';
if l2='8' then
    zeichen1:='i';
if l2='9' then
    zeichen1:='j';
// zeichen 2
if l3='0' then
    zeichen2:='a';
if l3='1' then
    zeichen2:='b';
if l3='2' then
    zeichen2:='c';
if l3='3' then
    zeichen2:='d';
if l3='4' then
    zeichen2:='e';
if l3='5' then
    zeichen2:='f';
if l3='6' then
    zeichen2:='g';
if l3='7' then
    zeichen2:='h';
if l3='8' then
    zeichen2:='i';
if l3='9' then
    zeichen2:='j';

Edit2.Text:='inf=' +l1+l2+l3 + '-' + zeichen1 +zeichen2;

end;

procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
Edit1.Text := Format('%.3d', [UpDown1.Position]);
end;

end.

DeddyH 28. Mai 2008 18:54

Re: zahl durch ein Zeichen ersetzen ?
 
Ich geb' s auf, nochmal sag ich' s nicht :wall:

Zitat:

Delphi-Quellcode:
for i:=0 to 10 do //*grusel*
l1 := Feld1[1];
l2 := Feld1[2];
l3 := Feld1[3];



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz