![]() |
Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Habe ein Beispielcode von Buchstabe als Zahl.Das funktioniert.
Aber wie bekomme ich hin,dass ich bei Eingabe einer Zahl im Edit1 ein Buchstabe im Edit2 angezeigt bekomme?:oops:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Button1: TButton; Edit2: TEdit; procedure Button1Click(Sender: TObject); procedure Edit1Change(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} function getNR(c : char): integer; begin result := 0; // Ergebniss initialisieren case c of 'A': result := 11; 'B': result := 22; 'C': result := 33; 'D': result := 55; end; end; procedure TForm1.Button1Click(Sender: TObject); var i : INTEGER; begin Label1.Caption := ''; for i := 1 to length(Edit1.text) do begin Label1.Caption := Label1.Caption + IntToStr(getNR(Edit1.Text[i]))+' '; Edit2.Text := Label1.Caption ; end; end; procedure TForm1.Edit1Change(Sender: TObject); begin edit1.text := uppercase(edit1.text); edit1.SelStart := Length(edit1.text); end; end. |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
In einem Edit steht niemals eine Zahl, sondern wenn überhaupt nur Ziffern als Text, die man in eine Zahl umwandeln könnte
|
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Hab ich noch nicht gemacht.Habe heute Stunden damit verbracht
dieses auszuprobieren.Aber leider kein Erfolg.:oops: Kann mir bitte jemand helfen? :oops::oops::oops: |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
|
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Um es im Stil deines Beispiels zu lösen könnte es vielleicht so aussehen:
Delphi-Quellcode:
function getNR(c : char): char;
begin result := ' '; // Ergebniss initialisieren case c of '1': result := 'A'; '2': result := 'B'; '3': result := 'C'; end; end; procedure TForm1.Button1Click(Sender: TObject); var i : INTEGER; begin Label1.Caption := ''; for i := 1 to length(Edit1.text) do begin Label1.Caption := Label1.Caption + getNR(Edit1.Text[i])+' '; Edit2.Text := Label1.Caption ; end; end; |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Zitat:
jetzt könnte man ja auch auf die Idee kommen, dass das andersrum auch geht ;) |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
hab ich gerade ausprobiert,ich den veränderten Code.
Aber es kommt immer"Fehler". Ich sitz seit heute früh an diesen Salat. Jetzt bin ich komplett durcheinander.Bin ganz ehrlich: "Es fehlt noch an Wissen"...:oops: |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Naja, vielleicht fehlt es auch an Geschick das Problem zu analysieren und zu Beschreiben. Zum Beispiel schreibst du das du einen Fehler bekommst aber nicht welchen und auch nicht mit welchem Quellcode.
|
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
ich meine diesen Code:
Delphi-Quellcode:
function getNR(c : char): char;
begin result := ' '; // Ergebniss initialisieren case c of '1': result := 'A'; '2': result := 'B'; '3': result := 'C'; end; end; procedure TForm1.Button1Click(Sender: TObject); var i : INTEGER; begin Label1.Caption := ''; for i := 1 to length(Edit1.text) do begin Label1.Caption := Label1.Caption + getNR(Edit1.Text[i])+' '; Edit2.Text := Label1.Caption ; end; end; |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Es fehlt immernoch die Fehlermeldung/-beschreibung und eventuell noch die Codezeile des Fehlers.
|
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Entschuldigung.Ich bin der "PENNER":-D:-D:oops:
Ich seh den Wald vor Bäumen nicht mehr... Hatte nicht alles in den Code geändert. ES FUNKTIONIERT EINWANDFREI!!!! DANKE:-D |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Liste der Anhänge anzeigen (Anzahl: 1)
Gebe ich aber die 10 ein ist Schluss mit Lustig.
Siehe Anhang >>>Fehlermeldung Es kommt eine Meldung: [DCC Fehler] Unit1.pas(46): E2010 Inkompatible Typen: 'Char' und 'string' [DCC Fehler] Project1.dpr(5): F2063 Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Delphi-Quellcode:
:oops::oops::oops:
function getNR(c : char): char;
begin result := ' '; // Ergebniss initialisieren case c of '1': result := 'A'; '2': result := 'B'; '3': result := 'C'; '4': result := 'D'; '5': result := 'E'; '6': result := 'F'; '7': result := 'G'; '8': result := 'H'; '9': result := 'I'; '10': result := 'J'; end; end; procedure TForm1.Button1Click(Sender: TObject); var i : INTEGER; begin Label1.Caption := ''; for i := 1 to length(Edit1.text) do begin Label1.Caption := Label1.Caption + getNR(Edit1.Text[i])+' '; Edit2.Text := Label1.Caption ; end; end; procedure TForm1.Edit1Change(Sender: TObject); begin edit1.text := uppercase(edit1.text); edit1.SelStart := Length(edit1.text); end; end. |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Weil die 10 sich zusammensetzt aus 1 und 0, das erkennst du aber nicht.
Du schaust dir jedes Zeichen einzeln an, und dann kommt er genau bis 1 2 3 4 5 6 7 8 9 1 <--- Alle Bekannt. Dann kommt: 0. Für 0 gibt getNR() aber nix zurück. Schlimmer noch, getNR gibt nicht '' zurück, sondern schickt einfach einen Fehler, dass mit der Eingabe nix angefangen werden kann. Eine Möglichkeit wäre, den String immer in Pärchen auszulesen, und dann 01 02 03 etc zu nutzen.
Delphi-Quellcode:
for i := 1 to (length(Edit1.text)-1) do
begin Label1.Caption := Label1.Caption + getNR(Edit1.Text[i]+Edit1.Text[i+1])+' '; Edit2.Text := Label1.Caption ; end; |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Nee ich wollte jeder Zahl einen einzelnen Buchstaben zuweisen.
Mehr nicht.Aber ab hier '10': result:= 'J'; kommt dann die Meldung: [DCC Fehler] Unit1.pas(46): E2010 Inkompatible Typen: 'Char' und 'string' :oops::oops::oops: Bin kein Profi...:-D '1': result := 'A'; '2': result := 'B'; '3': result := 'C'; '4': result := 'D'; '5': result := 'E'; '6': result := 'F'; '7': result := 'G'; '8': result := 'H'; '9': result := 'I'; '10': result:= 'J'; Hier ist nochmal der gesamte Code:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,DateUtils,Clipbrd,StrUtils; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Button1: TButton; Edit2: TEdit; Edit3: TEdit; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} function getNR(c : char): char; begin result := ' '; // Ergebniss initialisieren case c of '1': result := 'A'; '2': result := 'B'; '3': result := 'C'; '4': result := 'D'; '5': result := 'E'; '6': result := 'F'; '7': result := 'G'; '8': result := 'H'; '9': result := 'I'; end; end; procedure TForm1.Button1Click(Sender: TObject); var i : INTEGER; begin Label1.Caption := ''; for i := 1 to length(Edit1.text) do begin Label1.Caption := Label1.Caption + getNR(Edit1.Text[i])+' '; Edit2.Text := Label1.Caption ; end; end; procedure TForm1.Button2Click(Sender: TObject); begin Edit2.SelectAll; Edit2.CopyToClipboard; Edit3.PasteFromClipboard; Clipboard.Clear; end; procedure TForm1.Edit1Change(Sender: TObject); begin edit1.text := uppercase(edit1.text); edit1.SelStart := Length(edit1.text); end; end. |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Ein Char = ein einzelnes Zeichen, "10" sind aber nunmal 2 Zeichen, deshalb die völlig korrekte Meldung.
|
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Und was kann ich da machen, das man es funktionsfähig bekommt?
Hab "Widechar" genommen,geht auch nicht. Habe im "Delphi" 7 Buch nachgelesen, aber nix gefunden. Bitte kann jemand helfen? Ich komme absolut nicht weiter... |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Ich weiß zwar immer noch nicht so genau, was Du vorhast, aber evtl. klappt es so:
Delphi-Quellcode:
function getNR(const ZahlStr: string): char;
var Zahl: integer; begin Result := ' '; if TryStrToInt(ZahlStr, Zahl) then case Zahl of 1: result := 'A'; 2: result := 'B'; 3: result := 'C'; 4: result := 'D'; 5: result := 'E'; 6: result := 'F'; 7: result := 'G'; 8: result := 'H'; 9: result := 'I'; end else //Fehlermeldung ausgeben oder etwas in der Art end; |
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Hi, suchst du möglicherweise nicht nach den Funktionen ord() und chr() ?
|
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Mit dem Vorschlag von DeddyH dürfte auch die 10 funktionieren :-)
|
AW: Buchstaben als Zahl geht-aber Zahl zu Buchstabe geht nicht
Also wenn ich das richtig verstanden hab, geht das auch einfacher, mit weniger Zeilen :)
Delphi-Quellcode:
function ZahlToNr(Str: Char) : Integer;
var abc : String; begin //Buchstabe in Zahl abc := 'abcdefghijklmnopqrstuvwxyz'; Result := Pos(LowerCase(Str), abc); end; function NrToZahl(StrZ:Integer) : String; var abc : String; begin //Zahl in Buchstabe abc := 'abcdefghijklmnopqrstuvwxyz'; Result := abc[StrZ]; end; lg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz