Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Problem mit String und TStrings (https://www.delphipraxis.net/129726-problem-mit-string-und-tstrings.html)

ünneb 24. Feb 2009 16:00


Problem mit String und TStrings
 
Hallo Delphiexperten,

ich habe in meinem Programm eine Liste, welche die Dateipfade von Dateien die über einen Opendialog geöffnet werden in eine Listbox importiert. Dort steht dann C:\Ordner\Dateiname.Dateityp. Ich würde nun gerne den Dateiname durch einen String ersetzen. Ich habe jetzt einfach mal versucht den String hintendran zu hängen, aber auch da gibts schon ein Problem da String und TStrings inkompatible Typen sind.
Sieht dann so aus

Listbox1.Items.Addstrings(OpenPictureDialog1.Files +form2.durchnummerieren.text);

Listbox.Itemadd , Addobject, Text habe ich alles schon probiert, aber da kommt die gleiche Fehlermeldung.

Ja die Delphihilfe habe ich auch schon versucht anzustrengen, aber die krieg ich unter Vista nicht zum Laufen.

Vielen Dank für Eure Mühe!

mirage228 24. Feb 2009 16:05

Re: Problem mit String und TStrings
 
Was ist denn form2.durchnummerieren.text?

So gehts:
Delphi-Quellcode:
Listbox1.Items.AddStrings(OpenPictureDialog1.Files);
TOpenPictureDialog.Files ist Delphi-Referenz durchsuchenTStrings, während .Text Delphi-Referenz durchsuchenString ist - beides zusammen geht nicht.

AddStrings() erwartet _nur_ ein TStrings-Objekt (und keinen String drangehangen noch!)
Items.Add() einen (ggf. zusammengesetzten) String (und kein TStrings!)

Viele Grüße

jfheins 24. Feb 2009 16:06

Re: Problem mit String und TStrings
 
Um die einzelnen Strings zu verändern musst du in einer Schleife alle durchgehen und einzeln manipulieren ;)

Andreas L. 24. Feb 2009 16:06

Re: Problem mit String und TStrings
 
Delphi-Quellcode:
var
  i: Integer;
begin
  for i := 0 to OpenDialog1.Files.Count -1 do
    ListBox1.Items.Add(ExtractFilePath(OpenDialog1.Files[i]) + form2.durchnummerieren.text);
end;
Ist es das was du machen willst?

taaktaak 24. Feb 2009 16:20

Re: Problem mit String und TStrings
 
Zitat:

Ja die Delphihilfe habe ich auch schon versucht anzustrengen, aber die krieg ich unter Vista nicht zum Laufen
Das sollte aber möglich sein: Suche mal im Internet nach "Windows6.0-KB917607-x86.msu" und installiere das, dann solltest du auch die alte Hilfe unter VISTA nutzen können.

ünneb 24. Feb 2009 16:31

Re: Problem mit String und TStrings
 
Ja Andreas L. so in der Art soll das werden. Um ehrlich zu sein sollen die Dateien, nach Kritieren die in durchnummerieren.text (TEdit) angegeben sind, durchnummeriert werden. Also wenn 6 Dateien geladen werden, sollen diese 6 Dateien nachdem man das durchgeführt hat, 1 - 6 heißen ....

Habe dazu mal deine Vorlage verwendet und weiterprobiert letztendlich werden die Integerwerte aus der Editkomponente mit der Anzahl der Bilder nicht verechnet, sondern dahinter angehangen. Ist ja auch klar da diese ja in Strings umgewandelt wurden. Muss ich wenn ich beide verrechnen will die in einer Variable vorher zusammenrechenen lassen ?

Und vor allem wie bekomme ich das hin, dass das Ganze eben dann von 1 bis 6 (zb) heißt ?

Vielen Dank

edit : auch Danke an taaktaak !

edit2 : Habe jetzt in einer Extravariable die Anzahl der Listenelemente mit der Eingabe aus der TEdit zusammengerechnet. Wie geht es jetzt das ich nun mehrere von 1 - Anzahl Listenelemente durchnummeriere ?

Andreas L. 24. Feb 2009 17:30

Re: Problem mit String und TStrings
 
Zitat:

Zitat von ünneb
Ja Andreas L. so in der Art soll das werden. Um ehrlich zu sein sollen die Dateien, nach Kritieren die in durchnummerieren.text (TEdit) angegeben sind, durchnummeriert werden. Also wenn 6 Dateien geladen werden, sollen diese 6 Dateien nachdem man das durchgeführt hat, 1 - 6 heißen ....

Habe dazu mal deine Vorlage verwendet und weiterprobiert letztendlich werden die Integerwerte aus der Editkomponente mit der Anzahl der Bilder nicht verechnet, sondern dahinter angehangen. Ist ja auch klar da diese ja in Strings umgewandelt wurden. Muss ich wenn ich beide verrechnen will die in einer Variable vorher zusammenrechenen lassen ?

Und vor allem wie bekomme ich das hin, dass das Ganze eben dann von 1 bis 6 (zb) heißt ?

Vielen Dank

edit : auch Danke an taaktaak !

edit2 : Habe jetzt in einer Extravariable die Anzahl der Listenelemente mit der Eingabe aus der TEdit zusammengerechnet. Wie geht es jetzt das ich nun mehrere von 1 - Anzahl Listenelemente durchnummeriere ?

Soll heißen es muss vor dem Dateinamen die Zahl hin oder der Dateiname soll Zahl + Endung werden? Schau dir mal Hier im Forum suchenExtractFileName, Hier im Forum suchenExtractFileExt und evtl. Hier im Forum suchenStringReplace an.

ünneb 24. Feb 2009 19:38

Re: Problem mit String und TStrings
 
Eigentlich soll der Dateiname zu Zahl + Endung werden. Unter Umständen soll noch aus einem anderen TEdit etwas wie 'Urlaubsbilder' als String drangehangen werden, aber das ist ja recht simpel umzusetzen.
Würde es Sinn machen sich zB ein Array von 1 - Anzahl anzulegen und die Dateinamen daraus zu beziehen ? :coder2:

Andreas L. 25. Feb 2009 11:14

Re: Problem mit String und TStrings
 
Zitat:

Zitat von ünneb
Eigentlich soll der Dateiname zu Zahl + Endung werden. Unter Umständen soll noch aus einem anderen TEdit etwas wie 'Urlaubsbilder' als String drangehangen werden, aber das ist ja recht simpel umzusetzen.
Würde es Sinn machen sich zB ein Array von 1 - Anzahl anzulegen und die Dateinamen daraus zu beziehen ? :coder2:

Wie wärs mit
Delphi-Quellcode:
for i := 1 to StrToIntDef(Edit1.Text, 0) do
  Rename(......);

ünneb 26. Feb 2009 17:58

Re: Problem mit String und TStrings
 
Vielen Dank an alle die geantwortet haben, hierbei vor allem Andreas L.. Ich habe alles umsetzen können und das Programm ist fertig. :dancer:

Danke nochmal :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 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