![]() |
Problem mit hochkomma in String
Delphi 5
hallo ich möchte in einen String die anzahl der hochkommas (') herrausfinden wie mache ich das ??? lg, Alex |
Re: Wie kann ich ein hochkommer finden ??
''''
|
Re: Wie kann ich ein hochkommer finden ??
das geht doch garnicht
somit habe ich das doch ausgekommert |
Re: Wie kann ich ein hochkommer finden ??
mit
![]() |
Re: Wie kann ich ein hochkommer finden ??
Zitat:
Der Plural von "Komma" ist übrigens "Kommata" ;) Und um ein ' zu suchen musst du es escapen ;) air |
Re: Wie kann ich ein hochkommer finden ??
ja sowas habe ich ja auch gedachte
aber wie suche ich nach einen hochkomma ?? eine andere frage wie bekomme ich ein hochkomma in einen string rein das würde mir schon sehr weiterhelfen escapen was ist das den ??? mensch ist das schwerr lg, Alex |
Re: Wie kann ich ein hochkommer finden ??
Also vom Titel des Threads her wuerde ich dir empfehlen mal auf einen von den Viagra-Spams zu antworten.
|
Re: Wie kann ich ein hochkommer finden ??
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var stri : String; i,HochKommaZaehler : Integer; begin HochKommaZaehler := 0; stri := ' 1'' 2'' 3'' 4'' '; // 4 Hochkommas for i := 1 to length(stri) do if stri[i] = '''' then inc(HochKommaZaehler); showmessage(Inttostr(HochKommaZaehler)); //Ergebnis = 4 end; |
Re: Wie kann ich ein hochkommer finden ??
Zitat:
Delphi-Quellcode:
Grüße Benjamin
s:='Wie geht''s?';
[Edit]Das war wohl zu viel des guten So würde es mit der Menge passen:
Delphi-Quellcode:
[/Edit]
s:='Wie geht'+''''+'s?';
|
Re: Wie kann ich ein hochkommer finden ??
Stopt mal eben
ich glaube wir reden hier aneinander vorbei nun ich meine das hochkomme ' und nicht das " hochkomma |
Re: Wie kann ich ein hochkommer finden ??
Hi.
Zitat:
Delphi-Quellcode:
ergibt: Wie geht's
s := 'Wie geht''s?'
Delphi-Quellcode:
ergibt: "Wie geht's"
s := '"Wie geht''s?"'
|
Re: Wie kann ich ein hochkommer finden ??
Schau mal mein Code, der zählt die (') Hochkommas, in Delphi werden doe aber mit ('') zweimal (') hintereinander geschrieben, da (') ein reserviertes Zeichen (für Stringanfang und -ende ) ist.
|
Re: Wie kann ich ein hochkommer finden ??
gut und wenn ich nur das zeichen (') in einen string haben will ??
|
Re: Wie kann ich ein hochkommer finden ??
s := '('')';
ergibt nach showmessage(s); ein (') !!!! Wenn Du jetzt die Klammern noch weglässt, hasst Du ein ' !!! |
Re: Wie kann ich ein hochkommer finden ??
hmm crisw
irgendwie peile ich zur zeit garnix mehr also ich habe in problem ich habe ein Programm welches unter windows geschrieben ist und ich muss das auf linux laufen lassen also das programm arbeitet mit einer mysql datanbank und mysql kommt damit nicht klar 'Select * from ARTIKEL where a_nr = 'Hallo' sondern will 'select * from artikel where a_nr = 'Hallo' nun wollte ich eine funktion schreiben die daraus halt 'select * from artikel where a_nr = 'Hallo' das macht das hallo darf aber nicht verändert werden das ist mein problem also wollte ich alles durch ein lowercase schicken bis auf die sachen die in (') stehen nun das ist ein einfaches balspiel es gibt sql anweisungen die viel viel komplexer sind das ist mein problem lg, Alex |
Re: Wie kann ich ein hochkommer finden ??
Zitat:
hmm ok könnte mir echt weiterhelfen danke erstmal |
Re: Wie kann ich ein hochkommer finden ??
Vorgehensweise:
Du hast 2 Stringvariablen, eine Eingabe und eine Ausgabe :arrow: Du suchst mit PosEx ('''') ob da Hochkommata drin sind. :arrow: Wenn ja, kopierst du mir PosEx und Copy die Teile zwischen den Hochkommata in die Ausgabe und wandelst sie dabei ggf. um Wie wärs's ? |
Re: Wie kann ich ein hochkommer finden ??
genauso mache ich es ja gerade
lg, Gigant02 |
Re: Wie kann ich ein hochkommer finden ??
Oder du benutzst einfach #39.
|
Re: Wie kann ich ein hochkommer finden ??
So etwa ?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var stri : String; i : Integer; ZwischenZweiHochkommas : Boolean; begin stri := 'Select * from ARTIKEL where a_nr = ''HALLO'''; ZwischenZweiHochkommas := False; for i := 1 to length(stri) do begin if stri[i] = '''' then ZwischenZweiHochkommas := not ZwischenZweiHochkommas; if not ZwischenZweiHochkommas then if (ord(Stri[i]) >= 65) and (ord(Stri[i]) <= 90) then Stri[i] := chr(ord(stri[i]) +32); end; showmessage(stri); end; |
Re: Wie kann ich ein hochkommer finden ??
Jetzt könnte natürlich auch jemand auf die dumme Idee kommen, und ein ' in die Mysql-DB schreiben wollen.
Er escapt zwar das ' durch \' aber deine Lösung sieht da nicht so gut aus :wink: |
Re: Wie kann ich ein hochkommer finden ??
Zitat:
|
Re: Wie kann ich ein hochkommer finden ??
so
nun muss ich leider nach hause fahren aber ich werd michheuteabend damit beschäftigen und euch weiter mit meinen problemen nerven aber deine lösung geviel mir schon sehr gut chrisw ich werd sie glaub ich noch etwa auschmücken und euch dann heuteabend nochmal vorstellen lg, gigant02 |
Re: Wie kann ich ein hochkommer finden ??
So nun ich habe es geschaft ich bin zuhause
ok mein Delphi 5 ist gestartet und nun geht es weiter mit testen |
Re: Wie kann ich ein hochkommer finden ??
mensch das geht ja
nun noch eine frage
Delphi-Quellcode:
wo wandel ich das in kleinbuchstaben um ??
procedure TForm1.Button1Click(Sender: TObject);
var stri : String; i : Integer; ZwischenZweiHochkommas : Boolean; begin stri := 'Select * from ARTIKEL where a_nr = ''Hallo'''; ZwischenZweiHochkommas := False; for i := 1 to length(stri) do begin if stri[i] = '''' then begin ZwischenZweiHochkommas := not ZwischenZweiHochkommas; end; if not ZwischenZweiHochkommas then begin if (ord(Stri[i]) >= 65) and (ord(Stri[i]) <= 90) then begin Stri[i] := chr(ord(stri[i]) +32); end; end; end; showmessage(stri); end; end. |
Re: Wie kann ich ein hochkommer finden ??
Hi.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var stri : String; i : Integer; ZwischenZweiHochkommas : Boolean; begin stri := 'Select * from ARTIKEL where a_nr = ''Hallo'''; ZwischenZweiHochkommas := False; for i := 1 to length(stri) do begin if stri[i] = '''' then begin ZwischenZweiHochkommas := not ZwischenZweiHochkommas; end; if not ZwischenZweiHochkommas then begin if (ord(Stri[i]) >= 65) and (ord(Stri[i]) <= 90) then begin Stri[i] := chr(ord(stri[i]) +32); // <-- hier wird umgewandelt end; end; end; showmessage(stri); end; end. |
Re: Wie kann ich ein hochkommer finden ??
lach ich blinde nuss
ok ich sach schon nix mehr lg, Alex |
Re: Wie kann ich ein hochkommer finden ??
ok doch ich frag doch noch was
Delphi-Quellcode:
Nun gut ich frage mich warum die zeile
procedure TForm1.Button1Click(Sender: TObject);
var stri : String; i : Integer; ZwischenZweiHochkommas : Boolean; begin stri := 'Select * from ARTIKEL where a_nr = ''Hallo'' ' + 'Select * from ARTIKEL where a_nr = ''Hallo'''; ZwischenZweiHochkommas := False; for i := 1 to length(stri) do begin if stri[i] = '''' then begin ZwischenZweiHochkommas := not ZwischenZweiHochkommas; end; if not ZwischenZweiHochkommas then begin if (ord(Stri[i]) >= 65) and (ord(Stri[i]) <= 90) then begin Stri[i] := chr(ord(stri[i]) +32); end; end; end; showmessage(stri); end; ZwischenZweiHochkommas := not ZwischenZweiHochkommas; so ist und nicht ZwischenZweiHochkommas := False; was mache ich da mit der Boolischen Variable ??? also ich habe gerade rumprobiert und so wie ich meine geht es nicht aber was wird da gemacht ich kenn das so überhaupt nicht kann mir das mal einer erklären ??? lg, Gigant |
Re: Wie kann ich ein hochkommer finden ??
Du kehrst sie um. Wenn sie True war, ist sie jetzt False und umgekehrt.
Wenn du also in Hochkommata warst, bist du jetzt nicht mehr drin und umgekehrt ... ;) |
Re: Wie kann ich ein hochkommer finden ??
Hallo Gigant02,
naja, du startest ausserhalb von Hochkommas. Sobald du auf ein Hochkomma triffst, muss die Variable true sein, beim naechsten '' wieder false, dann wieder true usw. Das geht eben mal mit dem not-Konstrukt. Greetz alcaeus |
Re: Wie kann ich ein hochkommer finden ??
ahh jetzt habe ich es
es ist also eine nigierrung ich nehme den zustandt den ich hatte undn kehre ihn um also wenn er auf true war ist er danach false oder nicht ?? lg, Gigant |
Re: Wie kann ich ein hochkommer finden ??
Zitat:
Delphi-Quellcode:
anstatt dem hier
if ZwischenZweiHochkommas then
ZwischenZweiHochkommas := False else ZwischenZweiHochkommas := True;
Delphi-Quellcode:
schreiben? :gruebel:
ZwischenZweiHochkommas := not ZwischenZweiHochkommas;
Greetz alcaeus |
Re: Wie kann ich ein hochkommer finden ??
nee ich gerade etwas verplant gewehsen sorry
nun ich dachte immer das das not nur in abfragen geht aber das ich damit eine negierung erfolgen kann wusste ich nicht mensch damit erleichtert sich ja meine arbeit enorm danke für eure extrem gute und schnelle hilfe |
Re: Wie kann ich ein hochkommer finden ??
Zitat:
Delphi-Quellcode:
PS: Kannst du bitte mal den Titel ändern :stupid: ?
var Bedingung;
Bedingung := Edit1.Text = 'Hallo'; if Bedingung then |
Re: Problem mit hochkomma in String
mensch ich sollte den Boolean-Ausdrücke
mehr beachtung schenken lg, Gigant |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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