AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Teilstring in einen anderen String kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Teilstring in einen anderen String kopieren

Ein Thema von fes · begonnen am 31. Mai 2006 · letzter Beitrag vom 31. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
fes

Registriert seit: 22. Mär 2004
33 Beiträge
 
Delphi 2005 Personal
 
#1

Teilstring in einen anderen String kopieren

  Alt 31. Mai 2006, 16:50
Hallo zusammen!

Hab die Boardsuche und Google schon bemüht, aber nichts gefunden.
Ich möchte ganz einfach aus einem String wie z.b. "blablabla'dfdf'" aus der Zwischenablage ab dem ersten Hochkomma den String auslesen, und in einen Variable scheiben.
Bin schon halber am verzweifeln, weil ich den Fehler ned finden kann:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var
I,k:Integer;

begin
if Clipboard.Hasformat(CF_TEXT) then
 begin

 c := clipboard.AsText;
 if y = false then exit; // sicherung, dass die schleife nur 1 mal durchlaufen wird
  for i:=0 to length(c) do
   begin
    if c[i] = '''then //sobald ein Hochkomma vorhanden ist...

     begin

      for k := 0 to length(c)-2 do //...wird der string ab da in die variable d geschrieben
       begin

       d[k] := c[i+1]; //c+1 damit der das erste hochkomma nicht mitgeschrieben wird
                            //und length(c)-2 damit das 2te hochkomma nicht mitgeschrieben wird
       end;

    y:= false; //sicherung wird gesetzt
     end;


    end;

  end;
  edit1.text := d;
end;
Aber es funktioniert nicht, d ist leer also ' ' auch wenn man davor d einen wert zuweist.
Des weitern kommt dann noch ein Fehler, wenn man das Programm dann beendet: "Exeption EInvalidPointer in Modul Project1.exe...."

Hat jemand ne Idee?
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#2

Re: Teilstring in einen anderen String kopieren

  Alt 31. Mai 2006, 16:55
Guck mal in der Hilfe Nach
Delphi-Referenz durchsuchenPos
Delphi-Referenz durchsuchenCopy
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: Teilstring in einen anderen String kopieren

  Alt 31. Mai 2006, 16:57
x := Copy('blablabla'dfdf', Pos('blablabla'dfdf', '''), length('blablabla'dfdf')); So in etwa.

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Teilstring in einen anderen String kopieren

  Alt 31. Mai 2006, 17:04
Delphi-Quellcode:
for k := 0 to length(c)-2 do //...wird der string ab da in die variable d geschrieben
begin
  d[k] := c[i+1]; //c+1 damit der das erste hochkomma nicht mitgeschrieben wird
                       //und length(c)-2 damit das 2te hochkomma nicht mitgeschrieben wird
end;
an der Stelle z.B. schreibst du x-mal in d[k] immerwieder den gleichen wert c[i+1] irgendwas mit c[i+k] könnte passen .. aber eigentlich würde ich dir auch eher zu Pos raten.
da kannste dann alles in "einer zeile" machen.

Edit:

Zitat von Florian Bernd:
x := Copy('blablabla'dfdf', Pos('blablabla'dfdf', '''), length('blablabla'dfdf')); So in etwa.

Florian
ja sowas in der art hätte ich auch gedacht aber müssten das nicht 4 ' sein? (bei dir nur 3)
und das "'blablabla'dfdf'" is dann das clipboard.AsText
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
HuxXx
(Gast)

n/a Beiträge
 
#5

Re: Teilstring in einen anderen String kopieren

  Alt 31. Mai 2006, 17:05
Mhmm..., das was Florian Bernd da schreibt ist eigentlich logisch...
aber es scheint nicht zu funktionieren. (achja, das ' wird zu '').

Hier mal meine Version (hab's getestet):

Delphi-Quellcode:
var s:String;
var i, copy_to:integer;
begin
s:=Clipboard.AsText;
for i:=1 to length(s) do begin
if s[i] = '''then begin
copy_to:=i;
end;
end;
ShowMessage(copy(s,1,copy_to-1));
end;
guut..., das ist eigentlich n bissle umständlich..., aber mir fällt grad nix anderes ein...

Greetz by Hux

Edit: "da schreibt" eingefügt...
restlichen 3mal: Grammatikfehler im 1. Satz verbessert -.-
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#6

Re: Teilstring in einen anderen String kopieren

  Alt 31. Mai 2006, 17:10
wie wäre es mit

Delphi-Quellcode:
if pos(chr(39),c) <> 0 THEN
BEGIN
  edit1.text := copy(c,pos(chr(39)+1,c),length(c))
END else
edit1.text := 'Kein Hochkomma vorhanden';
gruß Evian
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
fes

Registriert seit: 22. Mär 2004
33 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Teilstring in einen anderen String kopieren

  Alt 31. Mai 2006, 17:12
@huxxx: also wenn ich das nach deiner procedure mache, gibt er mir den gleichen text aus, aber er entfernt das letzte hochkomma.

Also aus dem text blablabla'dfdf' wird blablabla'dfdf

Die anderen Vorschläge bin ich grad am ausprobieren.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Teilstring in einen anderen String kopieren

  Alt 31. Mai 2006, 17:16
Copy('blablabla''dfdf''', Pos('''', 'blablabla''dfdf'''), length('blablabla''dfdf''')); So gehts aber.
Rauskommt: 'dfdf

Ohne das Hochkomma am Anfang:
Copy('blablabla''dfdf''', Pos('''', 'blablabla''dfdf''') -1, length('blablabla''dfdf''')); Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
fes

Registriert seit: 22. Mär 2004
33 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Teilstring in einen anderen String kopieren

  Alt 31. Mai 2006, 17:18
@evian: das funktioniert irgenwie nicht, bringt den fehler "inkompatible typen"
  Mit Zitat antworten Zitat
Benutzerbild von Evian
Evian

Registriert seit: 10. Apr 2003
Ort: Berlin
485 Beiträge
 
Delphi 6 Professional
 
#10

Re: Teilstring in einen anderen String kopieren

  Alt 31. Mai 2006, 17:25
das passiert wenn man zuschnell was zusammenkliert.

aus edit1.text := copy(c,pos(chr(39)+1,c),length(c)) muss natürlich
edit1.text := copy(c,pos(chr(39),c)+1,length(c)) werden.

gesammt wäre das dann follgendes:

Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if Clipboard.Hasformat(CF_TEXT) then
begin
  c := clipboard.AsText;
  if pos(chr(39),c) <> 0 THEN
  BEGIN
    edit1.text := copy(c,pos(chr(39),c)+1,length(c))
  END else
  edit1.text := 'Kein Hochkomma vorhanden';
end;
end;
der code gibt dir aber nur den Teilstring vom ersten Hochkomma bis zum ende des Clipboardtextes, wenn Du den Text zwichen 2 Hochkammas haben willst, musst Du den Code natürlich entsprechend anpassen, bzw. noch mal posten.

EDIT:
Ist c eine globale String-Variabel?!
-> www.Phillsoft.de

Ich bin nun Mathematiker, aber meine Freundin bleibt trotzdem unberechenbar!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 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