Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   An welcher Position war/ist die Variable im Template (https://www.delphipraxis.net/189812-welcher-position-war-ist-die-variable-im-template.html)

RWarnecke 25. Jul 2016 16:12

An welcher Position war/ist die Variable im Template
 
Hallo zusammen,

ich habe folgende Ausgangssituation. Ich habe ein Template, welches wie folgt aussieht :
Zitat:

P%counter%%year%
Beide Variablen werden mit StringReplace entsprechend bei der Benutzung des Templates ersetzt. Die Variable %counter% hat keine führenden Nullen und somit keine feste Länge. Also zum Beispiel P12016 oder P1002016. Das Template ist frei wählbar und ich habe damit keinen Anhaltspunkt um den String zum Beispiel anhand eines Zeichens zu trennen.

Wie muss ich jetzt darangehen um rauszubekommen, wie hoch mein Wert in der Variable %counter% ist ? Ich will den Wert für den Counter neu setzen, zum Beispiel nach einem Import von Datensätzen.

Sir Rufo 25. Jul 2016 16:15

AW: An welcher Position war/ist die Variable im Template
 
Das Jahr ist immer 4-stellig?
Vorne ist immer ein Zeichen, was nicht dazugehört?

Hört sich trivial an ... :stupid:
Delphi-Quellcode:
counter := Integer.Parse( str.SubString( 1, str.Length - 5 ) );

RWarnecke 25. Jul 2016 16:19

AW: An welcher Position war/ist die Variable im Template
 
Das Template kann aber auch so aussehen :
Zitat:

100%counter%3081%year%

Sir Rufo 25. Jul 2016 16:22

AW: An welcher Position war/ist die Variable im Template
 
Zitat:

Zitat von RWarnecke (Beitrag 1343317)
Das Template kann aber auch so aussehen :
Zitat:

100%counter%3081%year%

Dann ist deine Frage also:

Ich hab da irgendeine beliebige Zeichenfolge und will daraus den counter Wert ermitteln.

Antwort: No way

RWarnecke 25. Jul 2016 16:25

AW: An welcher Position war/ist die Variable im Template
 
Das ist Schade. Dann muss ich mir etwas anderes überlegen.

ConnorMcLeod 25. Jul 2016 16:26

AW: An welcher Position war/ist die Variable im Template
 
Das Template ist aber doch irgendwo gespeichert, oder?
Vor der eigentlichen Verarbeitung müßte man also im Template den %counter%-Text und den %year%-Text suchen und anhand ihrer Positionen sieht man, was der Anwender rundherum dazudefiniert hat. Dies wiederum muß man nun weglöschen und landet bei %counter%%year%, bei dem nun noch die letzten vier Characters weg müssen.

Sir Rufo 25. Jul 2016 16:26

AW: An welcher Position war/ist die Variable im Template
 
Zitat:

Zitat von RWarnecke (Beitrag 1343319)
Das ist Schade. Dann muss ich mir etwas anderes überlegen.

Ist dir das Template denn wenigstens bekannt? Damit könnte man noch etwas anfangen

Neutral General 25. Jul 2016 16:26

AW: An welcher Position war/ist die Variable im Template
 
Oder anders gesagt: Wenn es wirklich eine feste (möglicherweise komplizierter als du bisher denkst) Regel für die Zusammensetzung gibt, es keine Trennzeichen gibt und du höchstens 1 Wert variabler Größe hast, dann geht es.

Und ein Template impliziert eigentlich ein vorgegebenes, festes Muster, sonst ist es kein Template.

stahli 25. Jul 2016 16:43

AW: An welcher Position war/ist die Variable im Template
 
Könntest Du mir (oder vielleicht lieber dem Sir oder so ;-) ) denn erklären, wie ich die Korrektur händisch zuverlässig erledigen könnte?

Gibt es also klare Kriterien dafür? Wenn DAS zutrifft, dann nimm DIESE Ziffern bzw. wenn als Muster FOLGENDE Datei benutzt wurde dann DIESE Ziffern...

Wenn ja, sollte es einfach zu lösen sein, wenn nicht, dann nicht.

RWarnecke 25. Jul 2016 16:58

AW: An welcher Position war/ist die Variable im Template
 
Also das Template (z.B. 100%counter%3081%year%) steht so in der Datenbank. Der Inhalt des Templates wird in ein Eingabefeld eingefügt, wobei die Variablen %year% und %counter% mit StringReplace entsprechend mit Werten ersetzt wird. Jetzt ist es so, dass Datensätze über eine Importdatei importiert werden können. Ein Feld in den Datensätzen enthält das Template (z.B.100130812016). Wenn ich jetzt die Anfrage auf dieses Feld ausführe sollte er mir als Wert für %counter% = 1 ausgeben.

Hier noch ein paar Beispiele :

1001030812016 --> %counter% = 10
10012530812016 --> %counter% = 125
100217830812016 --> %counter% = 2178
10047930812016 --> %counter% = 479

Das heißt, wenn diese 4 Datensätze importiert wurden, muss ich als Endergebnis 2178 erhalten. So dass wenn ich jetzt wieder manuell einen Datensatz hinzufüge als nächstes das Template gefüllt wie folgt aussieht :

100217930812016

Ich hoffe, es ist etwas klarer geworden, was ich erreichen will. Ansonsten fragt nochmal nach.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23: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