Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi ein teil aus mehreren strings rauskopieren (https://www.delphipraxis.net/10900-ein-teil-aus-mehreren-strings-rauskopieren.html)

Pseudemys Nelsoni 27. Okt 2003 17:11


ein teil aus mehreren strings rauskopieren
 
hoi,

ich habe folgendes:

Code:
<td width="200"></td><td width="400">dachschaf</td><tr>
<td width="200"></td><td width="400">destroy3r</td><tr>
<td width="200"></td><td width="400">quotitan</td><tr>
<td width="200"></td><td width="400">Alex0022</td><tr>
</table>
ich möchte aus zeile 1-4 die namen rauskopieren, also die die zwischen "400"> und dem < /td>




ich hatte es hiermit versucht:

Delphi-Quellcode:
      Repeat
        Delete(s, 1, Pos('"', s)+5);
        sl.Add(Copy(s, 1, Pos('<', s)-1));
      until Pos('td width', s) < 1;
sl ist eine stringlist. der code geht zwar auch, aber es sind leere items zwischen den namen, also so:

name1

name2

name3

name4

woher kommen die leeren?

ich wollte es natürlich so haben

name1
name2
name3
name4

Matze 27. Okt 2003 17:13

Re: ain teil aus mehreren strins rauskopieren
 
du kannst in der Schleife doch die Leerstellen weglöschen, wenn die immer da sind, ist aber keine schöne Lösung. :gruebel:

Pseudemys Nelsoni 27. Okt 2003 17:14

Re: ain teil aus mehreren strins rauskopieren
 
hm, jo, aber woher kommen die leeren denn? es muss ein fehler in meinem code sein, in dem html code ist keine leerzeile drin :cyclops:

Niko 27. Okt 2003 17:19

Re: ain teil aus mehreren strins rauskopieren
 
Wie bekommst du die einzelnen Zeilen denn in s hinein - oder steht dort der ganze Absatz drin?

Pseudemys Nelsoni 27. Okt 2003 17:20

Re: ain teil aus mehreren strins rauskopieren
 
jo es ist der ganze absatz drin

Rumpi 27. Okt 2003 18:43

Re: ein teil aus mehreren strings rauskopieren
 
Delphi-Quellcode:

function NextToken( var s: string; Separator: char ): string;
var
  sPos : integer;
begin
  Result := '';
  if length( s ) > 0 then
  begin
    sPos := pos( Separator, s );
    if sPos > 0 then
    begin
      Result := copy( s, 1, Pred( sPos ) );
      Delete( s, 1, sPos );
    end
    else
    begin
      Result := s;
      s := '';
    end;
  end;
end;

//Spiel doch mal mit NextToken rum ! 

procedure AProc( Value: String; Items: TStrings );
var
s, s2 : String;
begin
  s := Value;
  Items.Clear;
  while s <> '' then
  begin
    s2 := NextToken( s, '>' ); // s2 =
    if Pos( '"400"', s2 ) > 0 then
    begin
      s2 := NextToken( s, '<' );
      Items.Add( Trim(s2) );
    end;
  end;
end;
schnell gehackt ...

mfg Rumpi


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