AGB  ·  Datenschutz  ·  Impressum  







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

String Code überprüfen

Ein Thema von lemomo · begonnen am 17. Jul 2012 · letzter Beitrag vom 23. Jul 2012
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
lemomo

Registriert seit: 17. Jul 2012
2 Beiträge
 
#1

String Code überprüfen

  Alt 17. Jul 2012, 05:54
Hallo Leute,
Ich fange mit Delphi noch mal nach fast 8 Jahren pause und ich habe ein Problem. Ich möchte eine Procedure die ein Datei.txt liest und überprüft ob ein String richtig ist, schreiben. Der String kommt merhmal vor und hat ein Teil als Integer (O1--,O2+-, ... O123++ ) so sehen die String aus. Es muss auch überprüft werden ob unser String auf die erste Reihe geschrieben ist und ob sein Integer Teil sich richtig inkrementiert. Der Rest Teil +- , -- oder ++ muss nicht geprüft werden . Datei lesen ist ok aber für die Überprüfunh weisse ich nicht wie ich anfangen muss. Danke schön
Beispiel datei.txt :
W1
Ich möchte ein Procedur schreiben die ein Datei.txt liest und überprüft
W1
O1-+
A
das Nichtvorliegen unrechtsausschlieáender
A
O2—
A
Zur Bestandes soll erforderlich sein:
A
O3++
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: String Code überprüfen

  Alt 17. Jul 2012, 07:37
ich habe die Anforderung leider überhaupt nicht verstanden ...

Crosspost: http://www.entwickler-ecke.de/viewtopic.php?t=109844
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von Bummi (17. Jul 2012 um 07:41 Uhr)
  Mit Zitat antworten Zitat
Klaus01

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

AW: String Code überprüfen

  Alt 17. Jul 2012, 08:50
Guten Morgen,

die könntest zuerst alle Ox Zeilen filtern und in eine StringList schreiben.
Dann überprüfst Du ob x aus Zeile[i] größer ist als x aus Zeile[i-1], bzw die Differenz
beider Zahlen = 1 ist.
Zu extractNumbers gibt es meines Wissens auch in diesem Forum eine Routine.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: String Code überprüfen

  Alt 17. Jul 2012, 14:10
Da Deine Frage ein wenig verworren formuliert ist, wäre es gut wenn Du einmal ein paar Zeilen Deiner Datei posten würdest.
Als Stichworte würde mir copy,trystrtoint einfallen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#5

AW: String Code überprüfen

  Alt 17. Jul 2012, 20:04
Statt sich mit copy, trystrtoint und dergleichen herumzuschlagen, ist es praktisch immer viel bequemer, eine Regex Unit einzubinden und die String-Prüfungen und Zerlegungen über reguläre Ausdrücke zu machen. Das reduziert den nötigen Code und den Programmieraufwand auf ein Bruchteil. Ganz am Anfang natürlich etwas gewöhnungsbedürftig, aber es zahlt sich wirklich aus.

Mich erstaunt, dass sich noch immer relativ wenige Programierer dieser Möglichkeit bewusst sind.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: String Code überprüfen

  Alt 17. Jul 2012, 20:24
bewusst schon, aber ich empfinde es als unleserlich und mühsam...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#7

AW: String Code überprüfen

  Alt 17. Jul 2012, 22:58
@Idefix2
Nichts gegen reguläre Ausdrücke, aber ich habe den Eindruck das der TE damit leicht überfordert wäre.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
lemomo

Registriert seit: 17. Jul 2012
2 Beiträge
 
#8

AW: String Code überprüfen

  Alt 19. Jul 2012, 07:38
Danke für die Antworte ich werde mich heute nochmal mit der Aufgabe setzen , und nachher euch berichtet was ich schon oder nicht geschafft habe. Aber zuerst nochmal eine Erklärung mit beispiel (als Anhang ein beispiel Datei )


ich möchte ein Datei lesen, und danach überprüfen ob:

1-. O1- oder O2 ohne Leerzeichen geschrieben ist d.h vor der O1- oder O3 muss nicht leer sein oder gar nicht geschrieben sein.
2-. O1- , O2+ , O3 sich immer nach 1 erhöhen weil es kann passiert dass nach O45- man zum beispiel O47+ geschrieben hat

die + und - nach der O1 oder O4 sind egal müssen nicht überprüft werden

mfg Lemomo
Angehängte Dateien
Dateityp: txt text1.txt (1,2 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#9

AW: String Code überprüfen

  Alt 19. Jul 2012, 12:01
bewusst schon, aber ich empfinde es als unleserlich und mühsam...
Ich habe geschrieben "gewöhnungsbedürftig", aber es zahlt sich eben wirklich aus. Unleserlich ist es nur ganz am Anfang - wie so ziemlich alles, was neu ist, auch ein gut geschriebenes Delphi Programm ist für einen Programmieranfänger grösstenteils unverständlich. Wenn man sich einmal mit ihnen angefreundet hat, lässt sich mit regulären Ausdrücken weitaus mehr anfangen, als man auf den ersten Blick meinen sollte, und das eigentlich immer mit einem Bruchteil des Aufwands, der für einen "klassischen" Programmieransatz nötig ist. Insofern ist es alles andere als mühsam. Give it a try
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: String Code überprüfen

  Alt 19. Jul 2012, 12:59
So wie die Daten aussehen, würde ich Idefix' Ansatz bevorzugen.
Die sehr konservative Möglichkeit wäre z.b.
Delphi-Quellcode:
  readln(f,Satz);
  if (length(satz)>0) and (Satz[1]='O') then begin
    if pos('-',satz)>0 then
      satz:=copy(satz,2,pos('-',satz)-1);
    if pos('-',satz)>0 then
      satz:=copy(satz,2,pos('+',satz)-1);
    pruflist.add(satz);
 end;
wobei pruflist eine Stringliste ist.
Du solltst diese dan von 0.. .count durchgehen und die entsprechenden integerwerte vergleichen.

Eine andere Möglichkeit ist es zB. mit altsatz und aktsatz zu operieren.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 15:04 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