Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   String prüfen durch eine if anweisung und dann kopieren (https://www.delphipraxis.net/170398-string-pruefen-durch-eine-if-anweisung-und-dann-kopieren.html)

Alterauge 15. Sep 2012 09:27

String prüfen durch eine if anweisung und dann kopieren
 
so geht es nicht !

Delphi-Quellcode:
procedure TForm1.AdvGlowButton6Click(Sender: TObject);
 var
  s, d, e : String;

begin
//MessageDlg('Einsatznummer Leitstelle'+#10#13+'wirklich ändern ?', mtConfirmation, mbYesNo, 0) = mrYes then begin
if (s = MyTable2.FieldByName('Meldung').Text) and (d = '**') then begin
MyTable2.Edit;
  s := MyTable2.FieldByName('Meldung').Text;
  d := '**';
  Delete(s, 1, Pos(d, s) - 1 + Length(d));
  while Pos(#10, s) > 0 do Delete(s, Pos(#10, s), 1);
  while Pos(#13, s) > 0 do Delete(s, Pos(#13, s), 1);
  s := Trim(s);
  MyTable2.FieldByName('E.-Nr:').Text := Copy(MyTable2.FieldByName('Meldung').Text, Length (MyTable2.FieldByName('Meldung').Text+(s))-9, 10)+(s);
MyTable2.Post;
DBedit1.ReadOnly:=false;
end else begin
if d = '*' then begin
MyTable2.Edit;
 s := MyTable2.FieldByName('Meldung').Text;
  d := '*';
  Delete(s, 1, Pos(d, s) - 1 + Length(d));
  while Pos(#10, s) > 0 do Delete(s, Pos(#10, s), 1);
  while Pos(#13, s) > 0 do Delete(s, Pos(#13, s), 1);
  s := Trim(s);
  MyTable2.FieldByName('E.-Nr:').Text := Copy(MyTable2.FieldByName('Meldung').Text, Length (MyTable2.FieldByName('Meldung').Text+(s))-9, 10)+(s);
MyTable2.Post;
DBedit1.ReadOnly:=false;
end;
end;
end;
ohne eine if anweisung geht es!

Delphi-Quellcode:
MyTable2.Edit;
  s := MyTable2.FieldByName('Meldung').Text;
  d := '**';
  Delete(s, 1, Pos(d, s) - 1 + Length(d));
  while Pos(#10, s) > 0 do Delete(s, Pos(#10, s), 1);
  while Pos(#13, s) > 0 do Delete(s, Pos(#13, s), 1);
  s := Trim(s);
  MyTable2.FieldByName('E.-Nr:').Text := Copy(MyTable2.FieldByName('Meldung').Text, Length (MyTable2.FieldByName('Meldung').Text+(s))-9, 10)+(s);
MyTable2.Post;
DBedit1.ReadOnly:=false;
was muss ich ändern?

DeddyH 15. Sep 2012 09:53

AW: String prüfen durch eine if anweisung und dann kopieren
 
Welchen Wert hat denn s, wenn Du ihn vergleichst? Ich kann da nirgends eine Zuweisung erkennen.

[edit] Das könnte man auch schön mit dem Debugger prüfen, das Ding ist kein Hexenwerk, das darf man ruhig benutzen. [/edit]

lbccaleb 15. Sep 2012 09:58

AW: String prüfen durch eine if anweisung und dann kopieren
 
Zitat:

Zitat von Alterauge (Beitrag 1182958)
so geht es nicht !

Delphi-Quellcode:
...
if (s = MyTable2.FieldByName('Meldung').Text) and (d = '**') then begin
...
was muss ich ändern?

Weder s noch d beinhalten Daten...

Bjoerk 15. Sep 2012 10:04

AW: String prüfen durch eine if anweisung und dann kopieren
 
Delphi-Quellcode:
  S:=
  D:=
  if (s = MyTable2.FieldByName('Meldung').Text) and (d = '**') then
  begin
    ShowMessage(S + sLineBreak + D);
    ..

Alterauge 15. Sep 2012 10:13

AW: String prüfen durch eine if anweisung und dann kopieren
 
Also hier ein Beispiel 1 für das Feld 'Meldung'!

Feuerwehr Einsatz * Testhausen * Testdorfstrasse 15 **12346789

Beispiel 2 für das Feld 'Meldung' !

Feuerwehr Einsatz * Testhausen * Testdorfstrasse 15 * bei Meier *12346789

Ich möchte einfach nur die Einsatznummer 123456789 übernehmen!
Delphi-Quellcode:
procedure TForm1.AdvGlowButton6Click(Sender: TObject);
 var
  s, d: String;
begin
MyTable2.Edit;
 s := MyTable2.FieldByName('Meldung').Text;
 d := '**';
  Delete(s, 1, Pos(d, s) - 1 + Length(d));
  while Pos(#10, s) > 0 do Delete(s, Pos(#10, s), 1);
  while Pos(#13, s) > 0 do Delete(s, Pos(#13, s), 1);
  s := Trim(s);
  MyTable2.FieldByName('E.-Nr:').Text := Copy(MyTable2.FieldByName('Meldung').Text, Length (MyTable2.FieldByName('Meldung').Text+(s))-9, 10)+(s);
MyTable2.Post;
DBedit1.ReadOnly:=false;
So geht es mit '**' aber es soll auch bei einem '*' gehen!
Also eine if Anweisung oder?

mkinzler 15. Sep 2012 10:26

AW: String prüfen durch eine if anweisung und dann kopieren
 
Warum so kompliziert?
Was soll das Löschen von '**' wenn es gar nicht Teil des Stringes ist?
Warum While-Schleifen um Zeichen zu Ersetzen, welche nicht Teil des Strings sind?
Warum trennst du den String nicht anhand vorhandener Delimitern?

Bummi 15. Sep 2012 10:28

AW: String prüfen durch eine if anweisung und dann kopieren
 
while pos('*',s) do ......

oder gleich von hinter reinlaufen ....

DeddyH 15. Sep 2012 10:28

AW: String prüfen durch eine if anweisung und dann kopieren
 
Wäre es nicht besser, die DB zu normalisieren anstatt hier wilde Stringoperationen durchzuführen? Für mich sieht das so aus, als würden mehrere Werte in einem Feld gespeichert, das verletzt die 1. Normalform.

mkinzler 15. Sep 2012 10:51

AW: String prüfen durch eine if anweisung und dann kopieren
 
Er weiss sicherlich überhaput nicht, wovon wir Reden, und noch Schlimmer, er scheint ihn auch nicht zu Jucken!
In seinem diversen Fragen hat man ihm viele Fehler verbessert, Verbesserungsvorschläge gemacht und Tipps gegeben.
Aber er hat keinen der Verbesserungsvorschläge umgesetzt noch beherzigt er unsere Tipps!
Im fehlt Grundlagenwissen in sämtlichen Bereichen und er sieht auch keinen Sinn darin, sich dieses notwendige Wissen zu beschaffen!

Alterauge 15. Sep 2012 11:40

AW: String prüfen durch eine if anweisung und dann kopieren
 
herr mkinzler, wieso haben sie eigentlich immer so eine negative einstellung?

natürlich versuche ich alles zu verstehen!
nehme auch eure vorschläge an!

aber geben sie mir die zeit , diese dinge umzusetzen, zu testen und
natürlich zu verstehen!

kann nicht immer sofort antworten! dann teste ich gerade was!

danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.
Seite 1 von 3  1 23      

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