AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi String aus Stringlist in Array schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

String aus Stringlist in Array schreiben

Ein Thema von mmfembr · begonnen am 22. Mär 2006 · letzter Beitrag vom 22. Mär 2006
Antwort Antwort
mmfembr

Registriert seit: 10. Feb 2006
24 Beiträge
 
#1

String aus Stringlist in Array schreiben

  Alt 22. Mär 2006, 09:27
Hallo Zusammen

Habe folgendes Problem:
Ich sollte aus einem Textfile welches mehrere hundert Zeilen hat, einzelne Strings herauslesen (immer 8 Stück) anhand der Startadresse, welche vor dem String steht und mit Doppelpunkt vom restlichen Teil abgetrennt ist. Für die Startadresse habe ich ein Eingabefeld welches Hexadezimale Zahlen lesen kann. Nun die Adresse besteht aus Hexadezimalen Zahlen und dient im Moment für eine externe Applikation, dass heisst ich muss die Adresse noch entfernen bevor ich den Rest des Strings in den Array schreibe. Ich habe mir gedacht dass ich das ganze File in eine Stringlist Packe und so dann die Zeilen auslese, jedoch habe ich keine Ahnung wie man dass machen kann. Im Anhang stelle ich euch noch ein Adressfile zur Verfügung. Zusätzlich hier den Angefangenen Code von mir:

Delphi-Quellcode:
procedure THauptformular.sbtnBmpErstellenClick(Sender: TObject);
var
  hexarray : array[0..7] of String;
  y : Word;
  ihexzaehler : integer;
  StrLSort : TStringList;
  StrSourcePfadName : String;
  StrSourceName : String;
  StrSourcePfad : String;

begin
  DialogOpen.DefaultExt := '*.hex.gz';
  DialogOpen.Filter := 'Unifont-Files (*.hex.gz)|*.hex.gz|Text-Datetein (*.txt)|*.txt|Alle Dateien (*.*)|*.*';
  dialogOpen.Execute;
  StrSourcePfadName := Trim(dialogOpen.Files.Text);
  StrSourceName := StrSourcePfad;
  StrSourcePfad := ExtractFilePath(StrSourcePfadName);
  StrLSort := TStringList.Create;
  StrLSort.LoadFromFile(StrSourcePfadName);

  if TryStrToInt('$' + Edit1.Text, iHexZaehler) then
  begin
    iHexzaehler := iHexzaehler -1;
    for y := 0 to 7 do
    begin
      iHexzaehler := iHexzaehler +1;
      hexarray[y] := StrLSort.ValueFromIndex[];

    end;

  end;

end;

end.
Wäre froh wenn ihr mir da helfen könnt ich stehe unter grossem Zeitdruck...
Angehängte Dateien
Dateityp: txt v1_194.txt (2,28 MB, 17x aufgerufen)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: String aus Stringlist in Array schreiben

  Alt 22. Mär 2006, 09:43
so ganz verstehe ich nicht was Du willst.

Du hast eine Application in der die Adresse des Strings steht, richtig?

Diese Adresse mußt Du in dem Textfile suchen und den folgenden String wohinkopieren?

Wenn Du FF92 suchst, dann findest Du diese Zeile

FF92:0002020204242418081C142220408000

Die Zeile kannst Du mit copy und pos aufsplitten,
mit poskannst Du nach dem ':' suchen
was davor steht ist die Adresse , was dahinter steht ist, was weiß ich.

Mit stringlist.count erhälst Du die Anzahl der Zeilen in der Stringlist, diese musst Du dann durchsuchen.

Hoffe, habe nicht allzuviel Stuß geschrieben.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mmfembr

Registriert seit: 10. Feb 2006
24 Beiträge
 
#3

Re: String aus Stringlist in Array schreiben

  Alt 22. Mär 2006, 09:53
also, ich habe ein textfile voller strings. diese strings muss ich anhand der adresse (FFFF: 10bd0...) in einen array abfüllen, jedoch ohne die adresse vor dem string.
um dies zu erledigen dachte ich mir, ich schreibe das ganze in eine stringlist, da sowieso bei stringlisten der zugriff schneller ist als auf ein file. und nun möchte ich gerne wissen, wie ich aus einer stringlist einen string finde anhand der adresse (FFFF:...) des strings?!?!
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: String aus Stringlist in Array schreiben

  Alt 22. Mär 2006, 09:59
Delphi-Quellcode:
for i:=0 to stringlist.count-1 DO
  if pos('FF92:',stringlist.strings[i]) <> 0 then
    begin
       // adresse gefunden
       // mach etwas damit

    end;
Hatte ich im vorherigen Beitrag aber schon kurz angerissen ;o)

oder direkt darauf zugreifen:
die Adresse gibt Dir ja die Zeile.
$001 = Stringlist.strings[0]

Delphi-Quellcode:
gesuchte_Zeile := stringlist.strings[StrToInt('$'+adresse)];

inhalt:=copy(gesuchte_Zeile,pos(':',gesuchte_Zeile),length(gesuchte_Zeile));
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mmfembr

Registriert seit: 10. Feb 2006
24 Beiträge
 
#5

Re: String aus Stringlist in Array schreiben

  Alt 22. Mär 2006, 10:38
nein, direkt darauf zugreiffen kann ich nicht, da nicht alle adressen vorhanden sind...

gruss mmfembr

hast mir geholfen... besten dank! es ist für mich jetzt erledigt
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: String aus Stringlist in Array schreiben

  Alt 22. Mär 2006, 11:04
In D7 lässt sich das Problem sehr elegant lösen:

Delphi-Quellcode:
type
  TMainForm = class(TForm)
    Button: TButton;
    HexEdit: TEdit;
    ValueEdit: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ButtonClick(Sender: TObject);
  private
    s: TStrings;
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.FormCreate(Sender: TObject);
begin
  s := TStringList.Create;
  s.NameValueSeparator := ':';
  s.LoadFromFile('c:\daten\dp\v1.txt');
end;

procedure TMainForm.FormDestroy(Sender: TObject);
begin
  s.Free;
end;

procedure TMainForm.ButtonClick(Sender: TObject);
begin
  ValueEdit.Text := s.Values[HexEdit.Text];
end;
Grüße vom marabu
  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 03:10 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