Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String (str[i]) funktioniert nicht (https://www.delphipraxis.net/133739-string-str%5Bi%5D-funktioniert-nicht.html)

Berlinermauer 7. Mai 2009 20:05


String (str[i]) funktioniert nicht
 
Hi,
blöder Titel, aber folgendes :

Delphi-Quellcode:
intstr: String;

intstr := Edit1.Text;
ShowMessage(intstr);
ShowMessage(intstr[4]);
Die Zweite Message ist leer, liegt das daran dass das Zeichen ein Integer ist?! eigentlich ja nicht oder?

oder geht das nur bei ShortStrings noch?

Namenloser 7. Mai 2009 20:08

Re: String (str[i]) funktioniert nicht
 
Etwas mehr Infos bitte. Was genau steht in Edit1.Text?

Mithrandir 7. Mai 2009 20:08

Re: String (str[i]) funktioniert nicht
 
Was steht denn im Edit?

Matze 7. Mai 2009 20:09

Re: String (str[i]) funktioniert nicht
 
Hallo,

ich bin mir nicht sicher, denke aber, dass es funktionieret. Was steht dem im Edit? Ich nehme an, das 4. Zeichen ist kein Leerzeichen.

Grüße

Edit: Huch, da waren 2 schneller.

oki 7. Mai 2009 20:09

Re: String (str[i]) funktioniert nicht
 
was steht denn drin in Edit1.Text?

Berlinermauer 7. Mai 2009 20:10

Re: String (str[i]) funktioniert nicht
 
Edit1.Text sind BinärZahlen, die von meinem Programm umgerechnet werden sollen.

darin ist zB 110 oder so, aber selbst wenn ich "hi" eingebe, funktioniert es nicht

oki 7. Mai 2009 20:10

Re: String (str[i]) funktioniert nicht
 
4 Leute die gleiche Frage?

Das muss die richtige sein :thumb:

Gruß oki

oki 7. Mai 2009 20:12

Re: String (str[i]) funktioniert nicht
 
hi hat nur 2 Buchstaben. In ...[4] steht nichts sinnvolles. Maximal #0

Mithrandir 7. Mai 2009 20:14

Re: String (str[i]) funktioniert nicht
 
Jupp. String[4] gibt dir das vierte Zeichen des Strings. Wenn der String natürlich nur 3 hat, dann steht an 4. Stelle nix...

Berlinermauer 7. Mai 2009 20:15

Re: String (str[i]) funktioniert nicht
 
stimmt :) geb ich was anderes ein funtzt?

ok sehe gerade bei der Zahl gehts auch.

Aber irgendwas ist dann hier falsch :

Delphi-Quellcode:
var
  Form1: TForm1;
  intcounter,intsolution,intpos: Integer;
  intstr: String;
  Wert: Array [1..8] of Integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
intstr := Edit1.Text;

Wert[8] := 1;
Wert[7] := 2;
Wert[6] := 4;
Wert[5] := 8;
Wert[4] := 16;
Wert[3] := 32;
Wert[2] := 64;
Wert[1] := 128;

intsolution := 0;

for intcounter := 0 to Length(intstr) + 1 do begin
intpos := 8 - intcounter; // Aktuelle Position
ShowMessage(intstr);
ShowMessage(intstr[4]);
ShowMessage('Int Pos : ' + IntToStr(intpos) + 'IntContent' +  intstr[intpos] + 'Solution ' + IntToStr(intsolution));

  if intstr[intpos] = '0' then begin
  intsolution := intsolution + 0;
  // 0
  end

  else if intstr[intpos] = '1' then begin
    intsolution := intsolution + Wert[intpos];
  end
  {
  else begin
    ShowMessage('Error: Binary has other values than 0 or 1');
  end;}
end;

ShowMessage(IntToStr(intsolution));
end;

oki 7. Mai 2009 20:17

Re: String (str[i]) funktioniert nicht
 
Sorry, bin etwas faul. Was soll der Code machen?

Mithrandir 7. Mai 2009 20:20

Re: String (str[i]) funktioniert nicht
 
Du solltest aus dem + vielleicht ein - machen. ;)

Delphi-Quellcode:
for intcounter := 0 to Length(intstr) - 1 do begin

oki 7. Mai 2009 20:24

Re: String (str[i]) funktioniert nicht
 
Egal, was da auch so gemacht werden soll, wenn du auf die Chars des Strings prüfst, zähl die Schleife so:
Delphi-Quellcode:
for intcounter := 1 to Length(intstr) do begin
Die Zeichen eines Strings beginnen bei 1 und enden bei Length(String). Bei dir ist der Code sehr schlecht lesbar.

Gruß oki

Berlinermauer 7. Mai 2009 20:31

Re: String (str[i]) funktioniert nicht
 
ok habs geändert, trotzdem ist es merkwürdig.

da kommt jetzt folgendes : Ufp -> intstr[1] -> U etc ?!

Mithrandir 7. Mai 2009 20:33

Re: String (str[i]) funktioniert nicht
 
Ja, und wo ist das Problem?

Berlinermauer 7. Mai 2009 20:33

Re: String (str[i]) funktioniert nicht
 
das da eigentlich 1 dann 1 dann 0 kommen sollte nicht Ufp !

Meflin 7. Mai 2009 20:34

Re: String (str[i]) funktioniert nicht
 
Zitat:

Zitat von Berlinermauer
da kommt jetzt folgendes : Ufp -> intstr[1] -> U etc ?!

Die Referenzzählung bei strings beginnt in Delphi auch bei 1 und nicht bie 0 ;)

oki 7. Mai 2009 20:35

Re: String (str[i]) funktioniert nicht
 
und sag doch mal kurz worum es geht. Ich hab so den Verdacht, dass man das einfacher lösen kann.

Gru0 oki

Mithrandir 7. Mai 2009 20:36

Re: String (str[i]) funktioniert nicht
 
Was ich ja quasi in Beitrag #9 schon etwas versteckt beschrieben habe:

Zitat:

Zitat von Daniel G
Jupp. String[4] gibt dir das vierte Zeichen des Strings. Wenn der String natürlich nur 3 hat, dann steht an 4. Stelle nix...

//Edit:

Zitat:

Zitat von Berlinermauer
das da eigentlich 1 dann 1 dann 0 kommen sollte nicht Ufp !

Bitte was? Beschreib mal was du eigentlich willst..

//Edit2: @Meflin: Jo, den Eindruck hab ich jetzt auch.. :stupid:

Meflin 7. Mai 2009 20:37

Re: String (str[i]) funktioniert nicht
 
Zitat:

Zitat von Daniel G
Was ich ja quasi in Beitrag #9 schon etwas versteckt beschrieben habe:
Zitat:

Zitat von Daniel G
Jupp. String[4] gibt dir das vierte Zeichen des Strings. Wenn der String natürlich nur 3 hat, dann steht an 4. Stelle nix...


Nach seiner neuen Antwort vermute ich will er eigentlich sowieso was ganz anderes, was ich aber beim besten Willen nicht verstehe :stupid:

oki 7. Mai 2009 20:39

Re: String (str[i]) funktioniert nicht
 
Zitat:

Zitat von Daniel G
Was ich ja quasi in Beitrag #9 schon etwas versteckt beschrieben habe:

Zitat:

Zitat von Daniel G
Jupp. String[4] gibt dir das vierte Zeichen des Strings. Wenn der String natürlich nur 3 hat, dann steht an 4. Stelle nix...

//Edit:

Zitat:

Zitat von Berlinermauer
das da eigentlich 1 dann 1 dann 0 kommen sollte nicht Ufp !

Bitte was? Beschreib mal was du eigentlich willst..

was ich in Beitrag #8 schon gesagt habe.

Und
Zitat:

Zitat von oki
und sag doch mal kurz worum es geht. Ich hab so den Verdacht, dass man das einfacher lösen kann.

Gru0 oki

ich mach gleich nicht mehr mit :(

Mithrandir 7. Mai 2009 20:42

Re: String (str[i]) funktioniert nicht
 
Zitat:

Zitat von oki
was ich in Beitrag #8 schon gesagt habe.

Man gaaa nich... :stupid: Du hast nur gesagt, dass in String[4] nix vernünftiges steht. :mrgreen:

oki 7. Mai 2009 20:45

Re: String (str[i]) funktioniert nicht
 
Zitat:

Zitat von Daniel G
Zitat:

Zitat von oki
was ich in Beitrag #8 schon gesagt habe.

Man gaaa nich... :stupid: Du hast nur gesagt, dass in String[4] nix vernünftiges steht. :mrgreen:

Pinschieter :mrgreen:

Mach trotzdem gleich nicht mehr mit wenn mir nicht bald jemand sagt was da eigentlich rauskommen soll. Hab keine Lust Code der nicht funst zu lesen und dann noch versuchen raus zu bekommen worum es da geht. :glaskugel:

Würd mich schon über einen Hinweis freuen.

Gruß oki

Matze 7. Mai 2009 20:45

Re: String (str[i]) funktioniert nicht
 
Zitat:

Zitat von Matze
Ich nehme an, das 4. Zeichen ist kein Leerzeichen.

Und ich indirekt in Beitrag #4. :tongue:

Ne mal ernst: Wartet ab, bis Berlinermauer sich wieder äußert. Aktuell kann man nur raten und das bringt nichts.

Grüße

Berlinermauer 7. Mai 2009 20:47

Re: String (str[i]) funktioniert nicht
 
Also :

ich wollte mit ner for jedes Zeichen eines Strings durchforsten,

wenns 1 ist entsprechen nen integer um eine gewisse zahl die abhängig von der Zeichenposition im String ist Addieren.

Kurz : Bin2Dec.

Also es lag daran, dass ich zum testen 110 gemacht hab, was 6 ergibt.

Soo mein Proggie erwartet aber 8 da er von hinten an los zählt..

oki 7. Mai 2009 20:48

Re: String (str[i]) funktioniert nicht
 
Zitat:

Zitat von Matze
Zitat:

Zitat von Matze
Ich nehme an, das 4. Zeichen ist kein Leerzeichen.

Und ich indirekt in Beitrag #4. :tongue:

Ne mal ernst: Wartet ab, bis Berlinermauer sich wieder äußert. Aktuell kann man nur raten und das bringt nichts.

Grüße

Richtig! und auch Pinschieter :mrgreen:

Schluß mit OT.

Ich vermute, er will in ein Edit eine Binärzahl eingeben. Dann prüfen ob auch nur 0 und 1 eingegeben wurde und dann noch irgendetwas machen.

Gruß oki

oki 7. Mai 2009 20:51

Re: String (str[i]) funktioniert nicht
 
Zitat:

Zitat von Berlinermauer
Also :

ich wollte mit ner for jedes Zeichen eines Strings durchforsten,

wenns 1 ist entsprechen nen integer um eine gewisse zahl die abhängig von der Zeichenposition im String ist Addieren.

Kurz : Bin2Dec.

Also es lag daran, dass ich zum testen 110 gemacht hab, was 6 ergibt.

Soo mein Proggie erwartet aber 8 da er von hinten an los zählt..

Ich seh immer noch nicht durch.

Willst du jetzt eine Binärzahl in ein Edit eingeben und diese dann als Integer anzeigen? Oder was?

Gruß oki

jfheins 7. Mai 2009 20:54

Re: String (str[i]) funktioniert nicht
 
:gruebel:
Delphi-Quellcode:
  intsolutiuon := 0;
value := 0;

for i := Length(intstr) downto 1 do
begin

  value = ord(intstr[i]) and 1;

  intsolutiuon := intsolution + value;

  intsolution := intsolution shl 1;
end;

ShowMessage(IntToStr(intsolution));
end;
Wobei es sicher noch einfacher ginge, aber ich hab mich mal grob an der Vorversion orientiert ... :stupid:

Berlinermauer 7. Mai 2009 20:57

Re: String (str[i]) funktioniert nicht
 
geenau..

nur irgenwas funktioniert noch nicht.

Edit: Ok habs jetzt glaub ich, warum der fehler da war kP?!

btw: das mit Downto kannte ich noch nicht, auch cool

oki 7. Mai 2009 21:01

Re: String (str[i]) funktioniert nicht
 
ok Berlinermauer,

ich bin jetzt Kochprofi und somit raus. Wer nicht mit mir redet bekommt auch keine Antwort.

Gruß oki

Berlinermauer 7. Mai 2009 21:11

Re: String (str[i]) funktioniert nicht
 
hab ich schon öfter gesagt, außerdem war das genau an dich gerichtet..


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