AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Im String Nach Wort suchen und nebenstehendes auslesen

Im String Nach Wort suchen und nebenstehendes auslesen

Ein Thema von CVi · begonnen am 8. Dez 2015 · letzter Beitrag vom 8. Dez 2015
Antwort Antwort
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Im String Nach Wort suchen und nebenstehendes auslesen

  Alt 8. Dez 2015, 09:14
Aber

Showmessage(GetValue('Name1= "Meier" Name2= "Schmidt" Strasse= "Hauptstrasse 22" Vorname= "Bernd"', 'Vorname'));
Liefert :
Zitat:
Bernd"
Darum sind Unit-Tests auch zwingend notwendig.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Im String Nach Wort suchen und nebenstehendes auslesen

  Alt 8. Dez 2015, 09:29
[...] Darum sind Unit-Tests auch zwingend notwendig.
Ach, komm, (Unit-)Testing wird überbewertet. Reicht doch, wenn es kompiliert...
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Im String Nach Wort suchen und nebenstehendes auslesen

  Alt 8. Dez 2015, 09:31
Aber

Showmessage(GetValue('Name1= "Meier" Name2= "Schmidt" Strasse= "Hauptstrasse 22" Vorname= "Bernd"', 'Vorname'));
Liefert :
Zitat:
Bernd"
Darum sind Unit-Tests auch zwingend notwendig.
Leider hab ich es noch nicht geschafft DUnit im Browser einzubinden und für die fehlerfreie Einbindung im Kopf fehlte noch der Kaffee.
Ich bin da auch nicht ganz sicher, was die optimale Variante ist, um das zu berichtigen, vielleicht:
Delphi-Quellcode:
  if meinString[Length(meinString)]='"then
    meinString=Copy(meinString,1,Length(meinString)-1);
Für alle weiteren Probleme die mit der Struktur noch auftreten könnten ist dieser Schnellschuss aber dann auch wirklich am Ende und es hilft nur noch ein Parser.
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.368 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Im String Nach Wort suchen und nebenstehendes auslesen

  Alt 8. Dez 2015, 12:06
Mal eben schnell hingetippt.
Die Idee dahinter: Mit einer StringList kann man auch Wertepaare "verwalten".
Da der String ja immer gleich aufgebaut sein soll, werden erstmal überflüssige Leerzeichen rausgeschmissen. Die Paare sind durch ein "=" verbunden. Ich meine, dass dann kein Leerzeichen dazwischen sein darf. Die Anführungszeichen mit folgendem Leerzeichen trennt ein Wertepaar vom nächsten. Der Sonderfall des letzten Wertepaares muss natürlich berücksichtigt werden.

Delphi-Quellcode:
var
  SL : TStringList;
  Teil, Mein : String;
begin
  SL := TStringList.Create;
  SL.NameValueSeparator := '=';
  Mein := StringReplace('Name1= "Meier" Name2= "Schmidt" Strasse= "Hauptstrasse 22" Vorname= "Bernd"', '= "', '="', [rfReplaceAll]);
  if length(Mein) > 0 then
  begin
    Repeat
      Teil := copy(Mein, 1, Pos('" ', Mein));
      if Teil = 'then
      begin
        Teil := Mein;
      end;
      SL.Add(Teil);
      Delete(Mein, 1, Pos('" ', Mein) + 1);
    until Pos('" ', Mein) = 0;
  end;
  ShowMessage(SL.Values['Strasse']);
end;
Dann kann man einfach über:
StringList.Values['Strasse'] zum Beispiel an den Straßennamen kommen.

Oder denke ich jetzt zu einfach?
Peter

Geändert von Jasocul ( 8. Dez 2015 um 12:18 Uhr) Grund: Doch noch ein Delphi dabei gehabt
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:01 Uhr.
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