[delphi] string naar char/ array of char

Pagina: 1
Acties:
  • 159 views sinds 30-01-2008
  • Reageer

  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
Ik heb een probleempje als ik een string wil omzetten in een char.
Ik heb bijvoorbeeld een editbox waar maar 2 characters in mogen staan.
Ik heb ook een variabele:
code:
1
temp: array[1..50] of char;

Hoe zeg ik nou dat die temp de waarde van de editbox.text moet krijgen. Het wil voor geen meter lukken. Krijg steeds incompatibiliy errors tussen array/string/char/pchar...

HELP!!

Edit: maar 1..50 van die char gemaakt :)


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


  • GeeBee
  • Registratie: Maart 2000
  • Laatst online: 19:39

GeeBee

Oddball

Zo ff uit mijn hoofd: als je van temp nou een text variabele maakt ipv een array of char?

Of een string van 2 karakters lang?

Woof, woof, woof, woof! That's my other dog imitation. | https://youtu.be/TzsNh3-FnHQ


  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
is dat dan ook nog 1 byte lang?

Die temp is namelijk onderdeel van een record en moet dus 2 bytes zijn met 2 characters.


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


Verwijderd

Euhm een string is in Delphi toch al een array van char's ?
(dus Stringnaam[1] is het eerste char etc.)
Dus als je String := edit1.text doet dan kan je met string[1] t eruit halen...

Of snap ik de bedoeling niet? :+

  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
Op woensdag 14 november 2001 13:43 schreef qball het volgende:
Euhm een string is in Delphi toch al een array van char's ?
(dus Stringnaam[1] is het eerste char etc.)
Dus als je String := edit1.text doet dan kan je met string[1] t eruit halen...

Of snap ik de bedoeling niet? :+
Ok, je hebt gelijk, maar ik heb er ook een van
code:
1
experiment: array[1..50] of char;

Moet ik nu dan
code:
1
2
3
4
experiment[1] := editbox.text[1];
experiment[2] := editbox.text[2];
experiment[3] := editbox.text[3];
experiment[4] := editbox.text[4];

50 keer doen?


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


Verwijderd

code:
1
2
3
4
5
6
7
var chr : array [1..7] of char;
    str : string;
    tel : integer;
begin
  str:=edit1.text;
  for tel:=1 to 3 do
    chr[tel]:=str[tel];

Verwijderd

Gebruik een for lus :P

  • Knutselsmurf
  • Registratie: December 2000
  • Laatst online: 16-09 23:11

Knutselsmurf

LED's make things better

hint: For x:=1 to 50 do........F1

- This line is intentionally left blank -


  • Darkvater
  • Registratie: Januari 2001
  • Laatst online: 26-08-2024

Darkvater

oh really?

Topicstarter
Dank U allen.

Dus gewoon een loop (hetzelfde wat ik zei, alleen dan met loep :9 ). D'er is geen shorcut :(


Windows Vista? *NEVER* Het waarom - Opera forever!!!
I've seen chickens that were more menacing. Chickens in a coma. On ice. In my fridge


Verwijderd

Doe dit:
code:
1
2
3
4
5
6
7
var
  Temp: array[0..50] of Char;
begin
  { Neem aan: lengte Edit1.Text < 51 }
  Move(PChar(Edit1.Text)^, Temp, Length(Edit1.Text) + 1);
  ShowMessage(Temp);
end;
Pagina: 1