AGB  ·  Datenschutz  ·  Impressum  







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

Zwei Stringlisten sortieren

Ein Thema von Luckie · begonnen am 10. Mai 2005 · letzter Beitrag vom 11. Mai 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 13:32
Problem: Ich habe zwei Stringlisten. In der einen sind die Einträge in einer bestimmten Reihenfolge in der anderen nicht. In dieser anderen sollen die Einträge jetzt die gleiche Reihenfolge haben, wie die in der ersten. hat da jemand eine Idee, wie man das elegant lösen könnte?

Mir schwebt irgendwie was mit einer dritten temporären vor. Aber eht es eventuell noch besser?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 13:41
Frage: Unterscheidet sich der Inhalt der beiden Listen? Oder ist der Inhalt bis auf die Sortierung gleich?


Gerd
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 13:46
Man kann sagen, dass der Inhalt nahezu identisch ist. Hintergrund ist der: Ich habe eine Stringliste mit Dateien. Diese zeige ich in einem Stringgrid an. Aber dort nur die Dateinamen, der Pfad ist in dem Moment uninteressant. Mit Klick auf die Zelle wird die Datei in einem Memo angezeigt. Kein Problem, da ich aus der Zeile den Index in der Stringliste ermitteln kann. Jetzt kann das Stringgrid aber sortiert werden, mit der Folge dass die Reihenfolge im Grid nicht mehr mit der in der Stringliste übereinstimmt und somit die falsche Datei geöffnet wird. Bei einer Listbox hätte ich mit AddObject gearbeitet, aber das bietet das TMS StringGrid irgendwie nicht - oder ich habe es nochnicht gefunden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 14:07
Hi Luckie,
welche Möglichkeiten der Sortierung bietet denn dein Stringgrid? Wenn es nur um eine alphabetisch aufsteigende, bzw. absteigende Sortierung der Dateinamen geht kannst du diese in der Stringlist doch einfach nachempfinden.
Wenn aber Einträge verschoben werden fällt mir auch nichts besseres ein, als Schritt für Schritt durchs Grid zu gehen, die Einträge mit der Stringlist zu vergleichen und eine temporäre Stringlist zu schreiben

Gruß
Christian
Es gibt nur 10 Typen von Menschen auf der Welt:
Die, die Binärcode verstehen und die, die es nicht tun . . .
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 14:13
Nein, es werden nicht die dateinamen sortiert, das Kriterium ist ein anderes, was die Dateinamen total durcheinander würfelt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 14:19
Zitat von Luckie:
... aber das bietet das TMS StringGrid irgendwie nicht - oder ich habe es nochnicht gefunden.
Hai Luckie,
ich habe zwar schon lange nicht mehr mit den TMS Produkten gearbeitet... aber das TMS-StringGrid ist glaube ich vom "normalen" TStringGrid abgeleitet. Dieses kannt auch ein Delphi-Referenz durchsuchenAddObject für jede Zeile/Spalte ([oh]Colls/Rows[/oh])
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 14:52
Gut die Eigenschaft habe ich jetzt gefunden, nur leider hängt sich mein Programm ganz still auf. Es kommt keine AV oder sonst irgendetwas.

Delphi-Quellcode:
type
  TFileObject = record
    Filename: String[255];
  end;
  PFileObject = ^TFileObject;

procedure TForm1.mnuFilesClick(Sender: TObject);
var
  i: Integer;
  s: string;
  FileObj: PFileObject;
begin
  if frmFiles.ShowModal = mrOK then
  begin
    // oben und unten eine Zeile zusätzlich
    StringGrid1.RowCount := slFiles.Count + 2;
    // Spaltenbreite anpassen
    StringGrid1.ColWidths[0] := GetLongestWord(StringGrid1.Canvas, slFiles) +
      30;
    // Dateinamen mit Pfad als Objekt in der Zeile ablegen
    for i := 0 to slFiles.Count - 1 do
    begin
      new(FileObj);
      FileObj^.Filename := slFiles.Strings[i];
      StringGrid1.Rows[i+1].AddObject(ExtractFilename(slFiles.Strings[i]), TObject(FileObj));
    end;
  end;
  mnuAnalyze.Enabled := EnableAnalyzeBtn;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#8

Re: Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 14:54
Mal ne Frage: Wenn in beiden Stringlisten das gleiche drin steht, nur halt einmal sortiert und einmal nicht. Warum nimmst du dann nicht einfach gleich die sortierte Stringlist?
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 14:55
Deswegen: http://www.delphipraxis.net/internal...=365641#365641 In der sortieretn fehlen die Pfade zu den Dateien.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.107 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Zwei Stringlisten sortieren

  Alt 10. Mai 2005, 15:11
Moin Luckie,

warum nimmst Du als Objekt nicht einfach den Index der sortierten Liste?
Das spart Dir anschliessend auch die Freigabe des reservierten Speichers.

[EDIT]
und prüf' auch mal nach, dass AddObject auch das gewünschte erledigt.
Bei Memo/RichEdit.Lines kann man auch AddObject machen, aber hier enthält das Objekt anschliessend nur 0
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 05:34 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