Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String bearbeiten (https://www.delphipraxis.net/41859-string-bearbeiten.html)

Gentleman 9. Mär 2005 20:23


String bearbeiten
 
Hi!

Ich bins schon wieder :roll: .

Ich habe gerade total ein brett vor dem Kopf, bei einer eigentlich total einfachen Sache! ich lasse mit idFTP in einer ListBox alle Files anzeigen,
Delphi-Quellcode:
idFTP.List(ListBox1.Items);
und es kommt folgendes heraus:
Zitat:

drwx---r-x 2 p******* ftpusers 4096 Dec 12 12:12 images
So werden die Ordner bzw. Dateien angezeigt. Ich möchte jetzt allerdings nur den Order-/Dateinamen haben, in diesem Fall also Images.
jetzt bin ich schon die ganze Zeit mit irgendwelchen for-Schleifen unf Abfragen am rumprobieren, aber nie kommt das heraus was rauskommen soll! :?

Ich brauche eure Hilfe! :angel2:

thx im voraus!

Pr0g 9. Mär 2005 20:30

Re: String bearbeiten
 
Wenn immer nur einmal der Doppelpunkt in der Zeit auftaucht könntest du es so machen:
Delphi-Quellcode:
function GetLast(const AText: String): String;
var
  fPos: Integer;
begin
  fPos := Pos(':', AText) + 4;
  Result := Copy(AText, fPos, Length(AText) - fPos + 1);
end;
Aufruf:
Delphi-Quellcode:
GetLast('drwx---r-x 2 p******* ftpusers 4096 Dec 12 12:12 images');
MfG Pr0g

Gentleman 9. Mär 2005 20:39

Re: String bearbeiten
 
DANKE!!!! :mrgreen:

Genau das ist es was ich gesucht habe! :roteyes:

jfheins 9. Mär 2005 21:16

Re: String bearbeiten
 
Hier hab' ich noch etwas, dass ich mit für meinen WebFTP ( www.webftp.jfheins.de ) geschrieben habe ...

So, hier mal nach Delphi portiert.

(Die Datumsinformation darf von FTP-Server beliebig variiert werden, ist jedoch für den Menschen normalerweise schlüssig ... :wink: )

Delphi-Quellcode:
  TFTPFileInfo = record
    Directory: Boolean;
    Date: String;
    FileName: String;
  end;

function GetFTPFileInformation (InfoStr: String): TFTPFileInfo;
const
  Months: Array[1..12] of String[3] = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
var
  i, Position: Integer;
begin
  Result.Directory := copy (InfoStr, 1, 1) = 'd';

  for i := 1 to 12 do
  begin
    Position := pos (Months[i], InfoStr);
    if Position <> 0 then Break;
  end;

  Result.Date := Trim (copy (InfoStr, Position, 12));
  inc (Position, 12);
  Result.FileName := Trim (Copy (InfoStr, Position, length (InfoStr) - Position));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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 by Thomas Breitkreuz