Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - array of char und string
O'rallY - Mo 16.06.03 17:22
Titel: array of char und string
Ist mir zwar peinlich, aber wie kann man einen string in einen array des Typs char konvertieren?
Das Problem trat im Zusammenhang mit einem TrayIcon auf. Da gibts ja die Variable szTip (array [0..63] of char). Natürlich kann ich ganz leicht schreiben:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| szTip := 'text';
s: string; s := 'hallo'; szTip := 'text' + s; |
Dann habe ich mal probiert jeden Buchstaben einzeln zu übertragen. Misserfolg. Das Array ist anschließend leer:
Delphi-Quelltext
1: 2: 3: 4:
| newtip: string = 'irgendeintext';
for i := 0 to Length(newtip) - 1 do fIconData.szTip[i] := newtip[i]; |
ErnestoChe - Mo 16.06.03 17:44
Hi,
also du kanst ein array of Char und einen String verketten und einem anderen String zuweisen, wenn dir das was bringt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var Form1: TForm1; szTip: array[0..63] of char;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var s: String; begin szTip := 'Hallo'; s := ' Welt'; caption := szTip + s; end; |
MFG
- Ernesto -
O'rallY - Mo 16.06.03 17:51
Ne, das bringt mir leider nix. Ich muss der szTip-Variable eine String zuweisen könne. So schwer kann das doch nicht sein!
Popov - Mo 16.06.03 17:56
Eventuell müßte PChar klappen. Also:
Quelltext
1:
| szTip := PChar('text' + s); //Fehler |
Motzi - Mo 16.06.03 18:29
StrPCopy
Delete - Mo 16.06.03 19:00
Delphi-Quelltext
1:
| szTipp := pointer('Test'+s); |
O'rallY - Mo 16.06.03 22:36
Danke für die Antworten. Werde es sobald ich Zeit habe ausprobieren. Motzis und Luckies Beiträge scheinen mir doch vielversprechend zu sein.
Ubrigens: Wer sich die Mühe machen will, jedes Zeichen einzeln zu übertragen:
Delphi-Quelltext
1: 2: 3:
| newtip: string = 'irgendeintext'; for i := 1 to Length(newtip) do fIconData.szTip[i-1] := newtip[i]; |
hansa - Di 17.06.03 02:03
Was treibt Ihr denn da ? Das geht nur Buchstabe für Buchstabe.
Quelltext
1: 2:
| for i := 1 to length (s) do wasweißich |
Delete - Di 17.06.03 08:10
| hansa hat folgendes geschrieben: |
| Was treibt Ihr denn da ? Das geht nur Buchstabe für Buchstabe. |
Erzähl bloß nicht solchen Unsinn! Richtig ist, dass dieser Versuch
Delphi-Quelltext
1:
| nid.szTip := pchar('Test' + s); |
einen Compiler-Fehler verursacht (zumindest bei mir mit D5). Man kann aber, wie Motzi schrieb, mit
StrPCopy arbeiten
Delphi-Quelltext
1:
| StrPCopy(nid.szTip,'Test' + s); |
bzw. wenn man ohne die SysUtils-Unit auskommen will/muss, dann geht es auch so:
Delphi-Quelltext
1:
| lstrcpy(nid.szTip,pchar('Test' + s)); |
foxy - Di 17.06.03 08:10
guter post :) das porblem habe ich auch gerade und wollte gerade topic eröffnen
ich versuch dann gerade mal die vorschläge
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!