AGB  ·  Datenschutz  ·  Impressum  







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

Delphi und flexible Arrays

Ein Thema von magix · begonnen am 11. Aug 2003 · letzter Beitrag vom 11. Aug 2003
Antwort Antwort
magix

Registriert seit: 25. Jul 2003
Ort: Marburg
2 Beiträge
 
#1

Delphi und flexible Arrays

  Alt 11. Aug 2003, 11:26
Erst einmal Hallo,

ich weiss der Titel ist nicht der Beste, aber mir faellt auch das formulieren der Frage schwer. Am besten ist es wohl wenn ich beschreibe was ich vor habe.

Ich frage einen Spieleserver via UDP ab, dieser schickt mir einen String zurueck der wie folgt aussieht

Code:
protocol\46\players\0\proxytarget\0\lan\0\max\15\...
Das Problem ist jetzt das ich den String nicht einfach auseinandernehmen kann (ich verwende eine split() Funktion hier aus dem Forum) und ein
array generieren kann, da sich die Position der Elemente aendern kann.

Aber wie man sehen kann hat der String eine Schluessel/Wert Struktur

protocol : 46
players : 0
usw.

Unter PHP wuerde ich den Schluessel jetzt als Arrayindex definieren und in der weiteren Verwendung auf diesen zugreifen.

echo $server['protocol']; // 46

Kann ich sowas auch in Delphi/Pascal verwirklichen? Wenn ja, wie ?

RTFM Pointer und aehnliches sehr willkommen.

Ich hoffe ich konnte mich einigermassen Verstaendlich ausdruecken.

Achja hab es ja fast vergessen: Delphi 7 verwende ich.

MfG
Mr. Magix
[ ] hier fuer den Gewinn frei rubblen
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: Delphi und flexible Arrays

  Alt 11. Aug 2003, 11:58
Probiers mal mit [Gemütlichkeit, mit Ruhe und Gelassenheit...]
Delphi-Quellcode:
procedure TextArrayToAssStringList(const Text: string; Delimiter: Char; List: TStrings);
var
  F, P: PChar;
  Name, Value: string;
begin
  P := PChar(Text);
  while P[0] <> #0 do
  begin
    F := P;
    while (P[0] <> #0) and (P[0] <> Delimiter) do Inc(P);
    SetString(Name, F, P - F);
    if P[0] <> #0 then
    begin
      Inc(P);
      F := P;
      while (P[0] <> #0) and (P[0] <> Delimiter) do Inc(P);
      SetString(Value, F, P - F);
    end
    else
      Value := '';

    List.Add(Name + '=' + Value);
  end;
end;

...
var List: TStrings;
begin
  List := TStringList.Create;
  try
    TextArrayToAssStringList('myname\myvalue\yourname\yourvalue', List, '\');
    if List.Values['myname'] = 'myvaluethen
      ShowMessage('Gefunden');
  finally
    List.Free;
  end;
end;
  Mit Zitat antworten Zitat
magix

Registriert seit: 25. Jul 2003
Ort: Marburg
2 Beiträge
 
#3

Re: Delphi und flexible Arrays

  Alt 11. Aug 2003, 12:24
Super, es macht es genauso wie ich mir das vorgestellt habe. Vielen Dank.

Achja nur so fuer die Akten im unteren Teil ist ein Parameter-dreher!
Erst der Delimiter und dann die Liste.

So und in 3 Wochen verstehe ich auch warum es geht

*Befehlsreferenz zueck...*

MfG
Magix
[ ] hier fuer den Gewinn frei rubblen
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Delphi und flexible Arrays

  Alt 11. Aug 2003, 12:56
Zitat von magix:
Achja nur so fuer die Akten im unteren Teil ist ein Parameter-dreher!
Erst der Delimiter und dann die Liste.
Wiedermal meine Copy&Paste Sperre.
Der wahre Grund lag daran, dass die der Delimiter Parameter ganz zu Anfang der letzte war und ich ihn dann aus logischen Gründen nach vorne verschoben habe.

Zitat:
So und in 3 Wochen verstehe ich auch warum es geht
Und wenn nicht, macht es auch nichts. Das kann man auch mit Pos, Copy und Delete machen (nur eben langsamer). Diese Art der Programmierung mit PChars habe ich selbst vom Programmierer der früheren RaLib abgekupfert und perfektioniert. Das ist aber schon sehr lange her.
  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 23:57 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