Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi es zeichen eines strings (https://www.delphipraxis.net/19452-es-zeichen-eines-strings.html)

Freddy_K 3. Apr 2004 17:13


es zeichen eines strings
 
moin

Ich habe folgendes Problem. Ich versuch grade mit meinen eher schlechten delphi kenntnissen nen irc client zu basteln.. nichts großes, nur so das es funktioniert. Da der INDY idirc aber kein halfop kennt wie es in dem netzwerk verfügbar ist, besitzen einige nicks ein % vor dem nick. nun möchte ich das erste zeichen auf ein % überprüfen.

nun zum eigenlichen problem:

Delphi-Quellcode:
for i:=0 to memo2.lines.count do begin
nick:=memo2.lines[i];
memo1.lines.add(nick[1]);
end;
das ganze soll erstmal als test dienen ob er überhaupt das zeichen erkennt.. er kompiliert das ganze fehlerfrei. nur beim ausführen bekomm ich nen speicher fehler.. access violation...

mach ich irgendwo nen fehler? oder hat jmd ne andere/bessere lösung für das problem?

mfg
Freddy_K

Chewie 3. Apr 2004 17:15

Re: es zeichen eines strings
 
memo.lines.count gibt die Anzahl der Zeilen an. Die Inditzierung beginnt aber bei 0. D.h., du musst bis count-1 zählen.

Mirilin 3. Apr 2004 17:16

Re: es zeichen eines strings
 
:hi:

Delphi-Quellcode:
for i:=0 to memo2.lines.count -1  do
(Count gibt Anzahl, 0 ist erstes Element ... )

mfg Tobias

//edit, schon wieder :cyclops:

nikon.de 3. Apr 2004 17:17

Re: es zeichen eines strings
 
Code:
 if pos('%',string) > 0 then
 begin
  showmessage('ja');
 end else
  showmessage('noe');
  .......
Schau dir mal in der Delphi hilfe die pos funktion an

Freddy_K 3. Apr 2004 17:21

Re: es zeichen eines strings
 
ah hilfe.. hatte nich so schnell mit einer antwort gerechnet..

ob nun ab 0 oder ab 10 dürfte doche keine rolle spielen in bezug auf das speicherproblem.. ansonsten klappt das ja..

was mich wundert: nehm ich den gleichen befehl ändere nur die zuweisung von nick auf

Delphi-Quellcode:
nick:=auser.nick;
dann bekomm ich halt entsprechend der zeilen der memobox immer das erste zeichen vom nick des gemeinten users.. ohne fehler..

ich schau mir jetzt aber mal kurz die pos funktion an

mfg
Freddy

MathiasSimmack 3. Apr 2004 17:33

Re: es zeichen eines strings
 
Zitat:

Zitat von nikon.de
Schau dir mal in der Delphi hilfe die pos funktion an

Warum? Wenn das Prozentzeichen immer vorn ist, dann tut´s auch ein
Delphi-Quellcode:
if nick[1] = '%' then { ... }
Zitat:

Zitat von Freddy_K
ob nun ab 0 oder ab 10 dürfte doche keine rolle spielen in bezug auf das speicherproblem.. ansonsten klappt das ja..

Das war ja auch nicht der Punkt. Du hast bei Null angefangen zu zählen. Bei bspw. 10 Einträgen in der Liste würdest du logischerweise bis 11 zählen: 0, 1, 2, 3, ... 10. Und das war der Fehler. Da der erste Eintrag den Index Null hat, musst du den Maximalwert der Schleife natürlich auch um Eins verringern. Und das wollten dir Mirilin und Chewie damit sagen.

Freddy_K 3. Apr 2004 18:31

Re: es zeichen eines strings
 
s war ja nicht mein problem, sondern der speicher fehler den ich mit nick[1] berkommen hab.. ein pos('%',nick) = 1 löst mein problem.

vielen dank für die schnelle hilfe

mfg freddy


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