![]() |
strpos
Hallo,
hab noch ein kleines Problem. Ich wollte die Position eines textes "hallo ich habe einen computer" bestimmten, der sich in einem memo (memo1) befindet habs so gemacht:
Delphi-Quellcode:
Das ganze bringt mir einen Compiler-Error: Inkompatible Typen: 'String' und 'PAnsiChar'
var comptext, suchtext :string;
var gefunden :integer; begin comptext := memo1.Text; suchtext := 'computer'; gefunden : strpos (comptext,suchtext); end; end. Wer kann mir das erklären??? Grüße P.S.: Übrigens suche ich schon seit einiger Zeit nach nem Tutorial über Zeichenketten-Operatoren von Delphi (scheinen ja denen von PHP zu ähneln |
Hallo cookie-eater,
wenn du mit Strings arbeiten möchtest, bietet die Unit System dir Funktion Pos, die wie folgt deklariert ist:
Delphi-Quellcode:
und der strpos Funktion entspricht.
function Pos(Substr: string; S: string): Integer;
|
Re: strpos
Zitat:
|
Re: strpos
Zitat:
Delphi-Quellcode:
Du kannst aber auch gleich die für Pascal-Strings zuständige Funktion Pos einsetzen.
gefunden := strpos (PChar(comptext),PChar(suchtext));
Delphi-Quellcode:
gefunden := Pos(suchtext, comptext);
Schau mal in der OnlineHilfe unter dem Inhalt "Visual Component Library Reference" "Categorical Routine Listing" "string handling routines" nach. Zitat:
|
StrPos sucht in einem String, nach einem String. Ich würde , wie MRSpock gesagt hat, auch Pos() nehmen.
sähe dann so aus:
Delphi-Quellcode:
Bis dann, man liest sich. Stanlay. :hi:
var comptext, suchtext :string;
gefunden : Integer; begin Comptext := Memo1.Text; Suchtext := 'Computer'; Gefunden := Pos(Suchtext,Comptext); end; |
ok das hat geklappt:
Delphi-Quellcode:
ok nun brauch ich noch was. Bei mir steht der Suchbegriff "computer" an 16ter Stelle in der Memo.
var comptext, suchtext :string;
gefunden : Integer; begin Comptext := Memo1.Text; Suchtext := 'Computer'; Gefunden := Pos(Suchtext,Comptext); end; Ich möchte nun alles löschen was vor der 16ten stelle steht! Also Zeichen von 0-16! Wie mach ich das am Besten??? mit dem befehl StringReplace gehts nicht, weil mein programm daten aus einer e-mail erhält und ich nicht weiß welcher text vor dem wort "computer" (mein suchwort) steht... brr mit php könnte ich es per substr_replace machen...Delphi mach ich noch nicht sooo lange. Komme zwar gut vorran, aber vielleicht gibts ja ne Funktion die ähnlich der substr_replace funktion von PHP ist? Danke für alle Eure Posts. Dieses Forum ist das Beste was ich für Delphi kenne! :love: Grüße Cookie |
Schau mal in der Hilfe nach Delete.
|
yo habs mit delete versucht und zwar wollte ich mir das ergebis gern mal ausgeben lassen:
Delphi-Quellcode:
Bringt mir (wieder mal) nen Compiler-Error:
memo1.Text := delete (comptext,0,gefunden);
Inkompatible Typen: 'String' und 'procedure, untyped pointer or untyped parameter' Was soll das nun wieder? Hab versucht das Ergebnis dieser Operation in der varible comptext zu speichern, aber da bekomme ich selbigen Error... :x Hat jemand ne Lösung dafür??? |
Moin Cookie Eater,
da Delete eine Prozedur ist, hat sie keinen Rückgabewert. Der erste Parameter ist die Stringvariable aus der gelöscht werden soll, der zweite gibt an, ab wo, und der dritte wieviele Zeichen. |
Zitat:
Delphi-Quellcode:
gruss haegar
delete(comptext,0,gefunden);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:24 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-2025 by Thomas Breitkreuz