Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Teilweise Strings übertragen (https://www.delphipraxis.net/43658-teilweise-strings-uebertragen.html)

Marcl 6. Apr 2005 22:33


Teilweise Strings übertragen
 
Hei,
kann mir jemand vielleicht die Delphi Variante für den VB Befehl left$ right$ erklären?
Praktisch:

z.B. aus einer Filelistbox mit dem Inhalt Test.dat nur das Test in eine Listbox übertragen.
Ich mache das ganze mit einer for-next Schleife bin aber noch blutiger Anfänger und hab noch
überhaupt keinen Plan wie das hier funzt.


Gruß Marcel

SirThornberry 6. Apr 2005 22:35

Re: Teilweise Strings übertragen
 
bei delphi gibt es dafür die funktionen
LeftStr()
RightStr()
Diesen übergibst du den ursprungsstring und bekommst dann den teil zurück.
Beispiel:
Delphi-Quellcode:
Zielstring := RightStr('abcdef', 2); //danach ist Zielstring: "ef"
Zielstring := LeftStr('abcdef', 2); //danach ist Zielstring: "ab"

Binärbaum 7. Apr 2005 19:15

Re: Teilweise Strings übertragen
 
Nur so am Rande:
Notfalls hätte man es auch mit Delphi-Referenz durchsuchencopy realisieren können:
Delphi-Quellcode:
function Links(aStr: string; count: Cardinal): string;
begin
  Result:= copy(aStr, 1, count);
end;

function Rechts(aStr: string; count: Cardinal): string;
var ls: Integer;
begin
  ls:= length(aStr);
  Result:= copy(aStr, ls - count +1, ls);
end;
MfG
Binärbaum

SirThornberry 7. Apr 2005 19:17

Re: Teilweise Strings übertragen
 
@Binärbaum: Man hätte sich auch die copy-funktion noch selbst schreiben können *ironie* :roll:

Binärbaum 7. Apr 2005 19:28

Re: Teilweise Strings übertragen
 
Zitat:

Zitat von SirThornberry
@Binärbaum: Man hätte sich auch die copy-funktion noch selbst schreiben können *ironie* :roll:

Aber wenn, dann eine, bei der man noch in einem zusätzlichen Parameter übergibt, ob vom Stringanfang oder -ende an kopiert wird. :wink:

[OT]
Früher, als es noch kein copy gab, da musste das auch irgendjemand machen, damit wir das jetzt wie selbstverständlich verwenden können. :-D
Aber manchmal (und hier wieder) fällt mir auf, dass es in Delphi zig Funktionen gibt (wie z.B. LeftStr), die man ebenso in ein oder zwei Zeilen Code geschrieben hätte, wenn man auf andere ähnliche Funktionen (z.B. copy) zurückgreift.
[/OT]

Marcl 8. Apr 2005 19:11

Re: Teilweise Strings übertragen
 
Komisch...
Ich halt nur Delphi 5 aber irgendwie kennt der den Befehl net...
Muss ich da was deklarieren oder so?

Khabarakh 8. Apr 2005 19:14

Re: Teilweise Strings übertragen
 
In Delphi 6 ist er vorhanden, du musst noch die Unit StrUtils einbinden.

Marcl 8. Apr 2005 19:20

Re: Teilweise Strings übertragen
 
noch ne dumme Frage...wie geht das :-D

Khabarakh 8. Apr 2005 19:50

Re: Teilweise Strings übertragen
 
Zitat:

Zitat von Marcl
noch ne dumme Frage...wie geht das :-D

Delphi-Quellcode:
unit Unit1

interface

uses
  Windows, SysUtils, ..., StrUtils; //<- StrUtils eintragen

Marcl 8. Apr 2005 21:31

Re: Teilweise Strings übertragen
 
Mein Delphi 5 Standart kennt die StrUtils nicht.
Jetz bin ich platt...

Luckie 8. Apr 2005 21:34

Re: Teilweise Strings übertragen
 
Dann nimm Copy. LeftStr und RightStr machen bestimmt nichts anderes.

Marcl 14. Apr 2005 22:32

Re: Teilweise Strings übertragen
 
Hm ne irgendwie klappt das nicht so recht...
Mein Problem ist irgendwie, das die länge der Dateinamen ja immer anders ist.

Ich hatte mir das so gedacht, den Dateinamen halt aus der FileListbox entnehmen, 4 Stellen
abziehen also halt die letzen vier (.dat) und den Rest halt in die Listbox übertragen.
Krieg ich absolut nicht hin...

Kann mir da vielleicht nochmal jemand helfen?`

Gruß Marcel

Lannes 14. Apr 2005 22:57

Re: Teilweise Strings übertragen
 
Hallo,

damit wird es gehen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var z : Integer;
    aFile, aFileExt, aFilename : String;
begin
  for z := 0 to FileListBox1.Items.Count-1 do
    begin
      aFile := FileListBox1.Items[z];//aus FileListBox1 lesen
      aFileExt := ExtractFileExt(aFile);//z.B. = .dat
      aFilename := Copy(aFile,1,Pos(aFileExt,aFile)-1);//bis zur Extension kopieren
      ListBox1.Items.Add(aFilename);//in ListBox1 schreiben
    end;
end;

Marcl 14. Apr 2005 23:04

Re: Teilweise Strings übertragen
 
A perfekt...
Danke schööööööön :-D

Christian Seehase 15. Apr 2005 00:10

Re: Teilweise Strings übertragen
 
Moin Marcel,

für den Fall kannst Du auch ChangeFileExt benutzen.
Wenn Du als 2. Parameter einen Leerstring angibst (''), dann wird die Endung gelöscht.

Eine weitere Variante:
Du baust Dir das selber mit copy und LastDelimiter.
Schau Dir die Funktionen doch mal an.


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