Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi string zerlegen/bearbeiten? (https://www.delphipraxis.net/10609-string-zerlegen-bearbeiten.html)

Akut-Programming 22. Okt 2003 08:34


string zerlegen/bearbeiten?
 
Hi!

Ich bekomme einen String von meiner Anwendung zurück, in dem Alle Laufwerke aneinander gereiht drin stehen. Jetzt würd ich diese gern trennen. D.h. Nach jeden Zeichen ein Leerzeichen bzw. ':\' Hatte schon gesucht, aber soganz geholfen hat mir nichts. :roll: Könnt mir da hier vielleicht jemand helfen?

Greetz,

Ghostwalker 22. Okt 2003 09:04

Re: string zerlegen/bearbeiten?
 
Ok...das ich das richtig verstehen:

Du hast einen String "A:\B:\C:\D:\"

und möchtest "A:\ B:\ C:\ D:\" ?

Akut-Programming 22. Okt 2003 09:11

Re: string zerlegen/bearbeiten?
 
nein ich bekomm z.B. den String 'ABCDEFGXYZ'
und will 'A:\ B:\ C:\ D:\..' und dann noch jeden Buchstaben einzeln in ner beliebigen Variable!?

Tpercon 22. Okt 2003 09:16

Re: string zerlegen/bearbeiten?
 
Zitat:

Zitat von Akut-Programming
dann noch jeden Buchstaben einzeln in ner beliebigen Variable!?

Dafür bietet sich ja ein Array an.


Möchtest du jeden Buchstaben einzeln zum Laufwerk machen? Dann kannst du doch einfach in ner Schleife deinen String Zeichen für Zeichen durchgehen und diesen mit angehängtem :\ ins Array schreiben.

Ghostwalker 22. Okt 2003 09:20

Re: string zerlegen/bearbeiten?
 
ok...die lösung:

Code:
function GenDriveList(AString:String):String;
const
   cTrenner = ':\ ';

var
  I : Integer; //ein zähler...
 max: Integer; //Länge des Quellstrings;

begin
  max := length(AString); //einmal feststellen reicht.
  result := '';
  for I := 1 to max do
    result := result+Astring[i]+cTrenner;
  result := trim(result); //überflüssiges Leerzeichen am ende löschen
end;

Akut-Programming 22. Okt 2003 09:20

Re: string zerlegen/bearbeiten?
 
Zitat:

Zitat von Tpercon
Möchtest du jeden Buchstaben einzeln zum Laufwerk machen? Dann kannst du doch einfach in ner Schleife deinen String Zeichen für Zeichen durchgehen und diesen mit angehängtem :\ ins Array schreiben.

Hey, ja gute Idee - werd ich versuchen. Danke :thuimb:

[EDIT]
Danke Ghostwalker, werd ich mir auch angucken.
[/EDIT]

Christian Seehase 22. Okt 2003 09:36

Re: string zerlegen/bearbeiten?
 
Moin Zusammen,

und ab geht's nach "Sonstiges" ;-)

Remote1 22. Okt 2003 09:47

Re: string zerlegen/bearbeiten?
 
schau dir mal das an:

Delphi-Quellcode:
procedure Laufwerke;
var Drives : array [1..255] of char;
    i      : byte;
    Len    : DWord;
begin
  //Alle Laufwerke ermitteln
  Len:=GetLogicalDriveStrings(255,@Drives);
  for i:=1 to Len-2 do
    if (i mod 4)=1 then form1.lwwahl.AddItem(copy(Drives,i,3),form1.lwwahl);
end;


die ganze sache hab ich dann auch noch son erweitert, dass nur Festplatten ausgegeben werden

Delphi-Quellcode:
function festplatten:TStringList;
var Drives : array [1..255] of char;
    LWListe: TStringList;
    i        : byte;
    Len    : DWord;
begin
  LWListe:=TStringList.Create;
  festplatten:=TStringList.Create;
  //Alle Laufwerke ermitteln
  Len:=GetLogicalDriveStrings(255,@Drives);
  for i:=1 to Len-2 do
    if (i mod 4)=1 then LWListe.Add(copy(Drives,i,3));
  //Alle Festplatten ermitteln
  for i:=0 to LWListe.Count-1 do
   begin
    if GetDriveType(pchar(LWListe.strings[i]))=DRIVE_FIXED then festplatten.Add(LWListe.Strings[i])

end;
end;
[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]

Tpercon 22. Okt 2003 09:52

Re: string zerlegen/bearbeiten?
 
Nur so wie er oben schriebt, bekommt er ja den string und hat keinen Einfluß auf die Laufwerksuchenprocedure. Andernfalls ist der Weg im Prinzip natürlich gut.

@ Remote1: Wäre nett, wenn du die Delphi Code Tags benutzt. Damit läßt sich der Code leichter lesen.

Akut-Programming 22. Okt 2003 09:53

Re: string zerlegen/bearbeiten?
 
Cool danke Remote, probier ich aus.

Danke für eure Zahlreichen Tips!

:dp:


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