![]() |
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:
wobei s der string ist!
position:=pos(' ',s);
kann mir einer helfen? gruss haegar |
was ist denn die fehlermeldung?
Grumble :coder: |
gibt keine fehlermeldung, aber der wert für p ist immer 0!
und dann kann ich nix ausgeben (druckermäßig). gruss haegar |
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 |
das is doch aber genau das was ich probiere!
hier mal der source:
Delphi-Quellcode:
tja, und bei der showmessage bekomm ich immer für p 0 heraus.
s:=lb_anzeige.Items[i];
p:=pos(' ',s); showmessage(IntToStr(p)); gruss haegar |
@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; |
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:
ich hoffe das hilft irgendwie
procedure TForm1.Button1Click(Sender: TObject);
var s:string; p:integer; begin s:='müller Mike 453'; p:=pos(' ',s); button1.Caption:=inttostr(p); end; Grumble :coder: |
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 |
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: |
Machst du auch was mit der Variablen position? Ansonsten optimiert Delphi sie weg und im Debugger siehst du sie dann nicht mehr.
|
sicher, ich brauch sie für stringoperationen.
und im string sind 100 pro welche drin :? gruss haegar |
Poste mal die Prozedur.
Du hast auch nicht String und SubString vertauscht? |
Delphi-Quellcode:
die druckersache ist für testzwecke auskommentiert, und brauch nicht verbessert werden ;)) (auch wenns nicht optimal sein sollte) :mrgreen:
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; 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 |
so, muss leider gehen, mal sehen ob ich morgen nochmal ins forum guzcken kann (hoff)... :roll:
danke trotzdem gruss haegar |
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:
Grüsse, Daniel :hi:
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; |
hatte ich auch schonmal so ähnlich gemacht, kamen die unmöglichsten dinger raus! :firejump:
gruss haegar |
Zitat:
[edit] Sind die Textformatierungen (Größe/Farbe) ganz ausgeschaltet? |
ok ich habs, mehr oder weniger umständlich
gruss haegar |
Zitat:
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:
Grüsse, Daniel :hi: |
Zitat:
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? |
Zitat:
Grüsse, Daniel :hi: |
Zitat:
|
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 17:16 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