Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi teilstring im string suchen (https://www.delphipraxis.net/3815-teilstring-im-string-suchen.html)

Haegar 1. Apr 2003 10:08


teilstring im string suchen
 
moin moin,

ich hock grad inner schule und steh vornem mir vorläufig unkösbarem problem :mrgreen:

ich hab nen string, und ich such das erste Leerzeichen in diesem string!
Bsp: 'müller Maik 234555'

so, nun suche ich das erste leerzeichen (also nach dem "r" von müller :mrgreen: )

dachte das mach ich wie folgt
Delphi-Quellcode:
position:=pos(' ',s);
wobei s der string ist!

kann mir einer helfen?

gruss haegar

Grumble 1. Apr 2003 10:19

was ist denn die fehlermeldung?

Grumble
:coder:

Haegar 1. Apr 2003 10:22

gibt keine fehlermeldung, aber der wert für p ist immer 0!
und dann kann ich nix ausgeben (druckermäßig).

gruss haegar

The Re@l 1. Apr 2003 10:23

Hi

Du kannst es z.B. so machen
Code:
Position := edit1.Text;  //Dein Einganstext
Position := pos (' ', s); // Position des ersten ' '
edit2.text := s

Bis dann

Haegar 1. Apr 2003 10:25

das is doch aber genau das was ich probiere!
hier mal der source:
Delphi-Quellcode:
s:=lb_anzeige.Items[i];
   p:=pos(' ',s);
   showmessage(IntToStr(p));
tja, und bei der showmessage bekomm ich immer für p 0 heraus.

gruss haegar

Daniel 1. Apr 2003 10:26

@Real:
Nein - so geht es leider nicht. :wink: Du weist der Variable 'Position' erst einem String und direkt danach einen Zahlenwert zu... als Ausgleich wird 's' erst gar nicht initialisiert.

Delphi-Quellcode:
Procedure FindsSpace;
var myString : String;
  myPosition : Integer;
Begin
  myString:= 'Der April';
  myPosition:= Pos( ' ', myString );

  // Jetzt hat 'myPosition' den Wert 4
End;

Grumble 1. Apr 2003 10:29

also bei mir funzt das:

ich habe dazu mal n prog gemacht, wenn mann auf den button klickt erscheint darin die position des ersten leerzeichens

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
    p:integer;
begin
  s:='müller Mike 453';
  p:=pos(' ',s);
  button1.Caption:=inttostr(p);
end;
ich hoffe das hilft irgendwie

Grumble
:coder:

Haegar 1. Apr 2003 10:43

oh man ich geh noch krachen, ich habs doch genau so zu stehen :firejump: ..... ich weiss echt nicht was da falsch sein soll.
wenn ich spassenshalber mal als string " müller maik 2233" hab, dann zeigt er auch 1 an, aber sonst immer 0!?

gruss haegar

Grumble 1. Apr 2003 10:47

also bei mir klappts
mit ner listbox, ich nehme mal an lb_anzeige ist eine:

p:=pos(' ',listbox.items[x]);
showmessage(inttostr(p));

wenn du 0 zurueckbekommst gibts kein leerzeichen im untersuchten string

Grumble
:coder:

Luckie 1. Apr 2003 10:53

Machst du auch was mit der Variablen position? Ansonsten optimiert Delphi sie weg und im Debugger siehst du sie dann nicht mehr.

Haegar 1. Apr 2003 10:54

sicher, ich brauch sie für stringoperationen.
und im string sind 100 pro welche drin :?

gruss haegar

Luckie 1. Apr 2003 11:02

Poste mal die Prozedur.

Du hast auch nicht String und SubString vertauscht?

Haegar 1. Apr 2003 11:04

Delphi-Quellcode:
procedure TForm1.Drucken1Click(Sender: TObject);
var druckdat:TextFile;
    i,p:integer;
    s:string;
    name, vorname, leerstring, rand:string[20];
begin
 leerstring:='                   ';      //20 LZ
 rand:='         ';                        //10 LZ
 {AssignPrn(druckdat);    //Variable mit Drucker verbinden
 Rewrite(druckdat);           //Verbindung herstellen
 Printer.Canvas.Font.Name:='Courier New';
 Printer.Canvas.Font.Size:=12;
 Writeln(druckdat);
 Writeln(druckdat);
 Writeln(druckdat,'Telefonverzeichniss':50);
 Writeln(druckdat);
 Writeln(druckdat,Rand+'Name               Vorname               Telefon');}
 for i:=0 to lb_anzeige.Items.Count-1 do
  begin
   s:=lb_anzeige.items[i];
   p:=pos(' ',s);
   showmessage(IntToStr(p));
   name:=copy(s,1,p-1);
   name:=name+leerstring;
   showmessage(name);
   //Writeln(druckdat,Rand+name);
  end;
 //CloseFile(druckdat);
end;
die druckersache ist für testzwecke auskommentiert, und brauch nicht verbessert werden ;)) (auch wenns nicht optimal sein sollte) :mrgreen:
wenn ich anstatt des leerzeichens ein bucstabe oder so einsetze, dann haut das mit dem copy und so auch alles hin, aber nicht wenn leerzeichen drin ist!?


gruss haegar

Haegar 1. Apr 2003 11:14

so, muss leider gehen, mal sehen ob ich morgen nochmal ins forum guzcken kann (hoff)... :roll:

danke trotzdem
gruss haegar

Daniel B 1. Apr 2003 16:50

Hallo,

spiel doch einfach damit. Es ist halt ziemlich Blöd wenn man nicht weiss was man damit machen soll, daher einfach mal ein Beispiel mit der Message.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  iFor: Integer;
  sEdit: String;
begin
  sEdit := Edit1.Text;
  for iFor := 0 to Length(sEdit) do
  begin
    if sEdit[iFor] = ' ' then
    begin
      ShowMessage('An der ' + IntToStr(iFor) + ' stelle ist eine Leerstelle!');
    end;
  end;
end;
Grüsse, Daniel :hi:

Haegar 2. Apr 2003 08:48

hatte ich auch schonmal so ähnlich gemacht, kamen die unmöglichsten dinger raus! :firejump:

gruss haegar

X-Dragon 2. Apr 2003 09:14

Zitat:

Zitat von Daniel B
Hallo,

spiel doch einfach damit. Es ist halt ziemlich Blöd wenn man nicht weiss was man damit machen soll, daher einfach mal ein Beispiel mit der Message.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  iFor: Integer;
  sEdit: String;
begin
  sEdit := Edit1.Text;
  for iFor := 0 to Length(sEdit) do
  begin
    if sEdit[iFor] = ' ' then
    begin
      ShowMessage('An der ' + IntToStr(iFor) + ' stelle ist eine Leerstelle!');
    end;
  end;
end;
Grüsse, Daniel :hi:

In der For-Schleife muss es dann doch heißen "0 to x -1" oder?

[edit]
Sind die Textformatierungen (Größe/Farbe) ganz ausgeschaltet?

Haegar 2. Apr 2003 09:22

ok ich habs, mehr oder weniger umständlich

gruss haegar

Daniel B 2. Apr 2003 16:32

Zitat:

Zitat von X-Dragon
In der For-Schleife muss es dann doch heißen "0 to x -1" oder?

Spielverderber! Naja, irgendwas hätte Er auch selbst noch machen müssen. Wer sagt denn das ich fehlerfreien Code abgeben möchte?
Das schönste ist manchmal, procedure TForm1.Button1Click(Sender: TObjekt);
;) Irgendwas sollten die Leute schon noch selbst machen und auch mal kleine fehlerchen suchen. :mrgreen:
Zitat:

[edit]
Sind die Textformatierungen (Größe/Farbe) ganz ausgeschaltet?
Was meinst Du denn damit?

Grüsse, Daniel :hi:

X-Dragon 2. Apr 2003 16:46

Zitat:

Zitat von Daniel B
Zitat:

Zitat von X-Dragon
In der For-Schleife muss es dann doch heißen "0 to x -1" oder?

Spielverderber! Naja, irgendwas hätte Er auch selbst noch machen müssen. Wer sagt denn das ich fehlerfreien Code abgeben möchte?
Das schönste ist manchmal, procedure TForm1.Button1Click(Sender: TObjekt);
;) Irgendwas sollten die Leute schon noch selbst machen und auch mal kleine fehlerchen suchen. :mrgreen:
Zitat:

[edit]
Sind die Textformatierungen (Größe/Farbe) ganz ausgeschaltet?
Was meinst Du denn damit?

Grüsse, Daniel :hi:

Ups, tut imr leid :roll: :)

Ich meinte ob die Textformatierungen hier im Forum, mit dem man die Schriftgröße wie auch die Schriftfarbe ändern kann, ausgeschaltet sind. Oder zählen die zum HTML-Code?

Daniel B 2. Apr 2003 16:48

Zitat:

Zitat von X-Dragon
Ich meinte ob die Textformatierungen hier im Forum, mit dem man die Schriftgröße wie auch die Schriftfarbe ändern kann, ausgeschaltet sind. Oder zählen die zum HTML-Code?

Warum?Das geht doch.Oder sowas?

Grüsse, Daniel :hi:

X-Dragon 2. Apr 2003 17:56

Zitat:

Zitat von Daniel B
Zitat:

Zitat von X-Dragon
Ich meinte ob die Textformatierungen hier im Forum, mit dem man die Schriftgröße wie auch die Schriftfarbe ändern kann, ausgeschaltet sind. Oder zählen die zum HTML-Code?

Warum?Das geht doch.Oder sowas?

Grüsse, Daniel :hi:

Ähm ja jetzt schon Seltsam auf der Arbeit wure mir nur direkt der Code angezeigt und nicht die Formatierung ...

Haegar 3. Apr 2003 17:02

lol heut hab ich das ergenbiss meinem info-lehrer präsentiert, und er meinte nur....."ja ich hab mich gestern auch mal rangesetzt..hab aber nix hinbekommen" so ungefähr!
wieder einmal hat sich das bestätigt was mir mein bruder schon seit jahren an kopp knallt!
"der kann eigentlich gar net programmieren....alles was nicht so gemacht ist wie es in seinem buch steht, kann er auch nicht korrigieren/richtig programmieren".
tja genau das hab ich gemerkt! lol
die ganze klasse hat gefeiert :firejump:

gruss haegar


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