![]() |
Delphi-Version: 7
Frage zum Substring in Delphi
Hallo zusammen,
ich habe eine Frage zu den Substrings... Ich möchte mir ein kleines Programm schreiben mit dem ich die 9. Ziffer(Prüfziffer) einer 8 stelligen Zahl ausrechnen kann. Ich würde quasi eine 8 Stellige Zahl in ein Editfeld eintragen und daraufhin soll mir die eingetragene Zahl dann inkl. fehlender 9 Prüfziffer ausgegeben werden. Ich habe für den Anfang folgendes geschrieben:
Delphi-Quellcode:
Delphi gibt mir nun immer die Meldung zurück
unit Pruefziffer;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Schliessen: TButton; Edit1: TEdit; Berrechnung: TButton; Label1: TLabel; procedure ButtonSchliessenClick(Sender:Tobject); procedure ButtonBerrechnungClick(Sender:TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; PNR: String; NR1: String; implementation {$R *.dfm} procedure TForm1.ButtonSchliessenClick(Sender: TObject); begin close; end; procedure TForm1.ButtonBerrechnungClick(Sender:TObject); var PNR, NR1: String; begin PNR:= edit1.text; NR1:= PNR.SubString(1,1); Label1.Caption := NR1; end; end. [Fehler] Pruefziffer.pas(42): Record, Objekt oder Klassentyp erforderlich Es handelt sich um diese Zeile NR1:= PNR.SubString(1,1); Könnt ihr mir sagen was ich falsch mache? :cry: Grüße Oernie |
AW: Frage zum Substring in Delphi
Zitat:
Zitat:
Grüße |
AW: Frage zum Substring in Delphi
PNR ist ein String und keine Klasse, Du kannst das Zeichen an der Stelle k mit
Delphi-Quellcode:
abrufen.
PNR[k]
|
AW: Frage zum Substring in Delphi
String ist keine Klasse und verfügt daher nicht über eine Methode SubString. Du kannst entweder die Copy()-Funktion verwenden oder direkt indiziert auf einzelne Zeichen des Strings zugreifen.
Delphi-Quellcode:
var
NR1: String; ... NR1 := Copy(PNR, 1, 1); (* alternativ *) var NR1: Char; ... NR1 := PNR[1]; |
AW: Frage zum Substring in Delphi
ein String ist kein Objekt, hat also keine Methoden. Du willst die Funktion Copy verwenden:
![]() |
AW: Frage zum Substring in Delphi
Um eine einzelne Stelle eines Strings zu erhalten, kannst Du Label1.Caption := PNR[1]; (erste Stelle) verwenden.
|
AW: Frage zum Substring in Delphi
4 (eigentlich ja 5, gell TBx? ;)) Antworten innerhalb von 2 Minuten. Ist das neuer Rekord?
[edit] Und noch eine mehr *g* [/edit] |
AW: Frage zum Substring in Delphi
Wow ihr seid aber schnell. Vielen Dank für die wirklich "sehr" schnelle Hilfe.
Ich versuche eure Vorschläge direkt mal umzusetzen. :thumb: @Lemmy ja genau ich möchte an dieser Stelle die 1. Ziffer der Zahl ausgeben. Danke Örnie |
AW: Frage zum Substring in Delphi
Was hat die Funktion SubString mit dem Ermitteln einer Prüfziffer zu tun? Substring ist doch identisch mit Copy, soweit ich das beurteilen kann?
Zitat:
Delphi-Quellcode:
oder
Label1.Caption := Copy(MeinString,1,1);
Delphi-Quellcode:
Label1.Caption := SubString(MeinString,1,1);
|
AW: Frage zum Substring in Delphi
Folgendes funktioniert unter Delphi XE5:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var PNR, NR1: String; begin PNR:= edit1.text; NR1:= PNR.SubString(0,1); // Startindex ist 0 basierend Label1.Caption:= NR1; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:08 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