Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Ausschneiden mit Delete (https://www.delphipraxis.net/50482-ausschneiden-mit-delete.html)

Kompon Ente 26. Jul 2005 13:16


Ausschneiden mit Delete
 
Hallo,

ich lese aus der Registry HKCU\Software\Microsoft\Windows\CurrentVersion\Int ernet Settings\ den Wert ProxyServer.

Dieser sieht folgendermaßen aus:
ftp=195.100.85.159:3128;gopher=195.100.85.159:3128 ;http=195.100.85.159:3128;https=195.100.85.159:312 8

Jetzt möchte ich alles, was vor http= usw. steht wegschneiden.
Danach möchte ich bis zum : lesen und den Port in ein Extrafeld schreiben und ebenfalls bis zum ; lesen und den Rest wegschneiden.

Meine Abfrage sieht folgendermaßen aus:
Delphi-Quellcode:
    // prüfen, ob es sich um Zahlen handelt
    if (Ord(s[1])<=48) and (Ord(s[1])<=57) then
    begin
      // lesen bis zur Stelle, wo http= beginnt
      if pos(s,'http=') < 0 then
      begin
        // vorderen Teil wegschneiden
        Delete(s,6,pos('http=',s)-1-5);
        // in eine Variable kopieren
        s := copy(s,1,pos(':',s)-1);
        // usw.
        s := s + copy(s,1,pos(';',s)-1);
      end
      else
        MessageDlg('Kein HTTP-Proxy eingetragen!',mtInformation,[mbOk],0);
    end
    else
      ShowMessage('Rien ne va plius!');

Weiß jemand weiter? Ich nicht mehr..

barf00s 26. Jul 2005 13:20

Re: Ausschneiden mit Delete
 
sIPs: string = 'deinmumustringdaoben';

sIPs := Copy(sIPs, Pos('http=', sIPS), Length(sIPs));
sIPs := Copy(sIPs, 1, Length(sIPs) - Pos(':', sIPs) - 1));

Kompon Ente 26. Jul 2005 13:22

:wiejetzt:

Könntest du dich bitte etwas deutlicher ausdrücken? Und vllt. auch etwas gesitteter ;) @ deinmumudingdaoben

barf00s 26. Jul 2005 13:23

Re: Ausschneiden mit Delete
 
wieso noch deutlicher? schau in der hilfe was Copy() macht...

und wieso noch gesitteter? was is an dem wort nich i.o.?

Kompon Ente 26. Jul 2005 13:28

Re: Ausschneiden mit Delete
 
Das Problem ist, dass er gar nicht in die Abfrage reinkommt:

Delphi-Quellcode:
if (Ord(s[1])<=48) and (Ord(s[1])<=57) then
begin
  if pos(s,'http=') < 0 then
Er geht nach:
Delphi-Quellcode:
if (Ord(s[1])<=48) and (Ord(s[1])<=57) the
direkt in die Else! :(

r2c2 26. Jul 2005 13:39

Re: Ausschneiden mit Delete
 
Zitat:

Zitat von Kompon Ente
Delphi-Quellcode:
if (Ord(s[1])<=48) and (Ord(s[1])<=57) the

Damit prüfst du, ob das 1. Zeichen eine Zahl ist. Das erste Zeichen ist aber ein 'f', deshalb springt das ins else. Warum prüfst du das denn auch...? :gruebel:

mfg

Christian

Kidix 26. Jul 2005 13:40

Re: Ausschneiden mit Delete
 
du musst es erst prüfen wenn du's geparst hast....

Jasocul 26. Jul 2005 13:41

Re: Ausschneiden mit Delete
 
Delphi-Quellcode:
if (Ord(s[1])<=48) and (Ord(s[1])<=57) then
begin
  if pos(s,'http=') < 0 then
Prüf nochmal deine Bedingung. Das ist irgendwie quatsch.
Wenn das kleiner als 48 ist, dann ist es auch kleiner als 57.
Du kannst die vordere Hälfte weglassen, bzw. nochmal prüfen, was du da eigenltich machen wolltest.

Kompon Ente 26. Jul 2005 13:42

Ja äh... häh? :o

Sorry, aber ich denke irgendwie kompliziert.

Was muss ich denn sonst prüfen?

Jasocul 26. Jul 2005 13:43

Re: Ausschneiden mit Delete
 
Welche Bedingung soll denn dort erfüllt sein?
Beschreibs doch mal in Worten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 Uhr.
Seite 1 von 2  1 2      

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