AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zum Substring in Delphi

Ein Thema von Oernie1984 · begonnen am 5. Dez 2013 · letzter Beitrag vom 10. Dez 2013
Antwort Antwort
Seite 1 von 3  1 23      
Oernie1984

Registriert seit: 21. Okt 2013
4 Beiträge
 
#1

Frage zum Substring in Delphi

  Alt 5. Dez 2013, 15:13
Delphi-Version: 7
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:
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.
Delphi gibt mir nun immer die Meldung zurück
[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?

Grüße
Oernie

Geändert von TBx ( 5. Dez 2013 um 15:16 Uhr) Grund: Fehlende Delphi-Tags eingefügt, nächstes Mal bitte selbst machen
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Frage zum Substring in Delphi

  Alt 5. Dez 2013, 15:20
Könnt ihr mir sagen was ich falsch mache?
quasi alles

Es handelt sich um diese Zeile
NR1:= PNR.SubString(1,1);
sag mal kurz, was Du hier erwartest? Soll in Nr1 die erste Ziffer stehen?

Grüße
  Mit Zitat antworten Zitat
Mikkey

Registriert seit: 5. Aug 2013
265 Beiträge
 
#3

AW: Frage zum Substring in Delphi

  Alt 5. Dez 2013, 15:21
PNR ist ein String und keine Klasse, Du kannst das Zeichen an der Stelle k mit PNR[k] abrufen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: Frage zum Substring in Delphi

  Alt 5. Dez 2013, 15:21
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];
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#5

AW: Frage zum Substring in Delphi

  Alt 5. Dez 2013, 15:22
ein String ist kein Objekt, hat also keine Methoden. Du willst die Funktion Copy verwenden: http://www.delphi-treff.de/tutorials...en-funktionen/
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Frage zum Substring in Delphi

  Alt 5. Dez 2013, 15:22
Um eine einzelne Stelle eines Strings zu erhalten, kannst Du Label1.Caption := PNR[1]; (erste Stelle) verwenden.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

AW: Frage zum Substring in Delphi

  Alt 5. Dez 2013, 15:23
4 (eigentlich ja 5, gell TBx? ) Antworten innerhalb von 2 Minuten. Ist das neuer Rekord?

[edit] Und noch eine mehr *g* [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Oernie1984

Registriert seit: 21. Okt 2013
4 Beiträge
 
#8

AW: Frage zum Substring in Delphi

  Alt 5. Dez 2013, 15:30
Wow ihr seid aber schnell. Vielen Dank für die wirklich "sehr" schnelle Hilfe.

Ich versuche eure Vorschläge direkt mal umzusetzen.

@Lemmy ja genau ich möchte an dieser Stelle die 1. Ziffer der Zahl ausgeben.

Danke
Örnie
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#9

AW: Frage zum Substring in Delphi

  Alt 5. Dez 2013, 15:33
Was hat die Funktion SubString mit dem Ermitteln einer Prüfziffer zu tun? Substring ist doch identisch mit Copy, soweit ich das beurteilen kann?

@Lemmy ja genau ich möchte an dieser Stelle die 1. Ziffer der Zahl ausgeben.
Label1.Caption := Copy(MeinString,1,1); oder Label1.Caption := SubString(MeinString,1,1);

Geändert von Perlsau ( 5. Dez 2013 um 15:36 Uhr)
  Mit Zitat antworten Zitat
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#10

AW: Frage zum Substring in Delphi

  Alt 5. Dez 2013, 15:36
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;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 12:47 Uhr.
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