AGB  ·  Datenschutz  ·  Impressum  







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

TStringList Max String länge

Ein Thema von EWeiss · begonnen am 11. Mär 2009 · letzter Beitrag vom 12. Mär 2009
Antwort Antwort
Seite 1 von 3  1 23      
EWeiss
(Gast)

n/a Beiträge
 
#1

TStringList Max String länge

  Alt 11. Mär 2009, 13:34
Vielleicht hat jemand eine Idee.
Wenn ich ca 100 Dateien zu einer TStringList addieren möchte bei dem der Pfad zu diesen extrem lang ist
kracht es in Delphi gewaltig beim Debugen.

Was ich dann machen muss ist soviele Dateien entfernen so das die maximale stringlänge nicht überschritten wird.
Irgendwo kann es das aber nicht sein.

Hab mir überlegt nur den Dateinamen zu übergeben dann hab ich aber das problem
das ich dann keine recursive suche mehr durchführen kann da in diesen Fall der Pfad nicht mehr bekannt ist.

Habe da schon so viel versucht scheitere aber immer an der länge des Pfads(string)
Also die Frage wie würdet ihr das lösen ?

gruss Emil
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: TStringList Max String länge

  Alt 11. Mär 2009, 13:36
Anderer Vorschlag:

TList mit PChar statt TStringList.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: TStringList Max String länge

  Alt 11. Mär 2009, 13:37
Hallo,

beim Debuggen oder auch zur Laufzeit.
was heisst "krachen"


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: TStringList Max String länge

  Alt 11. Mär 2009, 13:40
Ich tippe eher darauf das das "Krachen" in der Stringlist durch einen anderen Fehler verursacht wird.
Kannst du ein Minimalbeispiel posten wo dieses Verhalten auftritt?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: TStringList Max String länge

  Alt 11. Mär 2009, 13:50
Beispiel:
Zitat:
C:\Dokumente und Einstellungen\Emil Weiss\Desktop\BassVisWrapper_SVN\BassVis_Wrapper_E xample\BassVisWrapper_Example\bin\Debug\splugins\
In dem Pfad befinden sich 100 Odner mit den Namen der Plugins die recursiv durchsucht werden.
Das ist einer.

Zitat:
C:\Dokumente und Einstellungen\Emil Weiss\Desktop\BassVisWrapper_SVN\BassVis_Wrapper_E xample\BassVisWrapper_Example\bin\Debug\splugins\A cidspunk
da angehängt noch das Plugin selbst.
Zitat:
C:\Dokumente und Einstellungen\Emil Weiss\Desktop\BassVisWrapper_SVN\BassVis_Wrapper_E xample\BassVisWrapper_Example\bin\Debug\splugins\A cidspunk\Acidspunk.svp
Dieser String wird getrennt durch einen Delemiter der übergeben werden kann .. default ist Commalist
Nun kann man sich vorstellen wie lang der String wird wenn ich 100 Ordner addiere.

Zitat:
beim Debuggen oder auch zur Laufzeit.
was heisst "krachen"
Zugriffs verletzung lesen von 00000000 und so weiter
Beim Debugen
Wenn die Exe Kompiliert ist also außerhalb der IDE gestarte wird funktioniert es.

Das ist der aufruf
Delphi-Quellcode:
function GlobalFindPlugins(Kind: TBASSVIS_KIND_T;
                           Vispath: PAnsiChar;
                           flags: DWord;
                           Delimiter: AnsiChar = ','): PAnsiChar;

Zitat:
TList mit PChar statt TStringList.
War meine vorherige version geht auch nicht.
Was ich noch dabei sagen muss die liste wird aus einer DLL übergeben

gruss Emil
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

Re: TStringList Max String länge

  Alt 11. Mär 2009, 13:54
Zitat von Bernhard Geyer:
Ich tippe eher darauf das das "Krachen" in der Stringlist durch einen anderen Fehler verursacht wird.
Kannst du ein Minimalbeispiel posten wo dieses Verhalten auftritt?
Wie schon gesagt tritt auf wenn der Strin seine Max länge erreicht hat.
Kann das nur beseitigen indem ich einige Ordner entferne.

Der Code... Beispiele ist schlecht da aus DLL
changed kein code problem

Gruss EMil
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: TStringList Max String länge

  Alt 11. Mär 2009, 13:58
Kann es eher sein das hier eine Windows-Eigenheit zuschlägt das Dateinamen/Pfad nur aufgelöst werden können wenn sie < 255 Zeichen sind bzw. weniger als 255 Zeichen vom aktuellen pfad entfernt sind?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

Re: TStringList Max String länge

  Alt 11. Mär 2009, 14:03
Zitat von Bernhard Geyer:
Kann es eher sein das hier eine Windows-Eigenheit zuschlägt das Dateinamen/Pfad nur aufgelöst werden können wenn sie < 255 Zeichen sind bzw. weniger als 255 Zeichen vom aktuellen pfad entfernt sind?
Ja .. Das ist so
Deshalb meine Frage wie ich das anderes lösen kann.
Am Code liegt es nicht .. der ist in Ordnung da ändert auch nichts dran wenn ich TList verwende.

Wie gesagt wenn ich nur das Plugin übergeben hätte ich kein problem mehr mit der länge des String
Kann aber dann den Pfad nicht übergeben was bedeute das recursive suchen wäre dann sinnlos.

gruss Emil
  Mit Zitat antworten Zitat
Klaus01

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

Re: TStringList Max String länge

  Alt 11. Mär 2009, 14:50
Hallo Emil,

wie es ausschaut, wirst Du wohl nicht viel anderes
übrigbleiben als Dir Dein eigenes ExtractFilePath
zu schreiben.

Die Routinen könnten in etwa so aussehen:

Delphi-Quellcode:
function extractFileName(s:string):String;
var
  i: Integer;
begin
  i:= length(s);
  while (i > 0) and (s[i] <> '\') do
    begin
      dec(i);
    end;
  result := copy(s,i+1,length(s)-i+1);
end;

function extractFilePath(s:string):String;
var
  i: Integer;
begin
  i:= length(s);
  while (i > 0) and (s[i] <> '\') do
    begin
      dec(i);
    end;
  result := copy(s,1,i-1);
end;
Kann man sicherlich noch eleganter machen ...

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: TStringList Max String länge

  Alt 11. Mär 2009, 16:02
(sorry)
  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 10:07 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