AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi An welcher Position war/ist die Variable im Template
Thema durchsuchen
Ansicht
Themen-Optionen

An welcher Position war/ist die Variable im Template

Ein Thema von RWarnecke · begonnen am 25. Jul 2016 · letzter Beitrag vom 26. Jul 2016
Antwort Antwort
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#1

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

  Alt 25. Jul 2016, 16:43
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.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

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

  Alt 25. Jul 2016, 16:58
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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.051 Beiträge
 
Delphi 12 Athens
 
#3

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

  Alt 25. Jul 2016, 17:01
Wäre es denkbar, daß du dir den Counter selbst irgendwie merkst? Das würde sogar eine Änderung des Templates überstehen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

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

  Alt 25. Jul 2016, 17:03
Wäre es denkbar, daß du dir den Counter selbst irgendwie merkst? Das würde sogar eine Änderung des Templates überstehen.
Ja, ich merke mir den Wert des Counters. Aber wie soll mich das weiterbringen, wenn ich das obenstehende Beispiel nehme ? Wenn mein gemerkter Counter auf 11 steht, muss ich den ja nach dem Import auf 2178 setzen.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.337 Beiträge
 
Delphi 11 Alexandria
 
#5

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

  Alt 25. Jul 2016, 17:31
Ich denke, Du musst das Problem mal zerlegen.

1) Du bekommst folgende Strings
1001030812016 10012530812016 100217830812016 10047930812016
aus einer Datenbank?

2) Du willst den höchsten Counter heraus finden?

3) Es können unterschiedliche Templates benutzt worden sein, also wäre als String auch 1232016 denkbar, wo Counter 23 oder 3 sein kann?

4) Du hast keine Ahnung, welche Template zu Grunde lag und wie das strukturiert war?

5) An den aktuellen Gegebenheit kannst Du nichts umstellen?
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.051 Beiträge
 
Delphi 12 Athens
 
#6

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

  Alt 25. Jul 2016, 18:32
Wäre es denkbar, daß du dir den Counter selbst irgendwie merkst? Das würde sogar eine Änderung des Templates überstehen.
Ja, ich merke mir den Wert des Counters. Aber wie soll mich das weiterbringen, wenn ich das obenstehende Beispiel nehme ? Wenn mein gemerkter Counter auf 11 steht, muss ich den ja nach dem Import auf 2178 setzen.
Wenn beim Import ein Counter von 2178 kommt und du dein gemerkter Counter auf 11 steht, dann merkst du dir offenbar nicht den richtigen Counter - nämlich den mit 2178. Zugegeben, ich weiß nichts über das System. Deswegen die Frage.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
504 Beiträge
 
Delphi 11 Alexandria
 
#7

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

  Alt 25. Jul 2016, 18:45
Ich könnte mir das etwa so vorstellen:
Delphi-Quellcode:
counterValue := '42';
highestValue := 0;
StringReplace('100%counter%234', '%counter%', counterValue);
if IntToStr(counterValue) > highestValue then
  begin
    hightestValue := IntToStr(counterValue);
  end;
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#8

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

  Alt 25. Jul 2016, 20:10
Ich habe ein Problem. Ich verstehe die Diskussion um die Herkunft der Werte für die Variablen %year% und %counter% nicht. Ich möchte doch nur eine einfache String Bearbeitung haben, die mir aus dem Ergebnis den Wert einer Variable vom Template zurückgibt.

Warum muss man jetzt wissen, woher die Variablen Ihre Werte bekommen ?

Nach meiner Meinung, ist das doch völlig irrelevant oder übersehe ich hier etwas ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#9

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

  Alt 25. Jul 2016, 17:26
Aus dem Kopf ungetestet ungefähr so: ?
Delphi-Quellcode:
const
  TMP_COUNTER = '%counter%';
  TMP_YEAR = '%year%';

function ExtractCounterFromString(const AString: string; const ATemplate: string): integer;
var
  liPosCounter, liLengthCounter: integer;
  liLengthYear: integer;
  lsResult: string;
begin
  liPosCounter := Pos(TMP_COUNTER, ATemplate);
  liLengthCounter := Length(TMP_COUNTER);
  liLengthYear := Length(TMP_YEAR);
  lsResult := Copy(AString, liPosCounter + liLengthCounter + 1, Length(AString));
  lsResult := Copy(lsResult, 1, Length(lsResult) - liLengthYear);
  Result := StrToIntDef(lsResult, -1);
end;

procedure ImportiereDatensaetze;
var
  liMaxCounter: integer;
begin
  liMaxCounter := -1;
  while EinDatensatzErfolgreichGelesen do begin
    liMaxCounter := max(liMaxCounter, ExtractCounterFromString(GelesenerDatensatz.CounterString);
  end;
  DoWhateverWith(liMaxCounter);
end;
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:50 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