Forum: PC-Programmierung hilfe bei c++builder6


von MC (Gast)


Lesenswert?

hallo leute,
ich arbeite schon länger mit µcs und bin relativ fit in assembler (für 
meine controller-familie natürlich nur;), c und basic.
jetzt möchte ich aber auch programme für windows entwickeln, um den pc 
als leistungsfähige erweiterung meiner projekte zu nutzen.
deshalb übe ich mich etwas in c++ mit dem builder6 von borland ein.

aber nun zu meinem problem:
ich habe auf meinem formular ein edit-fenster und den inhalt dieses 
edit-fensters möchte ich in ein altmodisches char-array kopieren, um ihn 
per pointer zeichenweise auszuwerten. dafür hab ich die funktion 
strcpy() gefunden. leider funzt das net und er kompiler spukt mir als 
fehlermeldung aus, dass er die daten nicht konvertieren könnte....
1
#include <string.h>
2
3
...
4
5
char string[11];
6
7
strcpy(string, (*Edit).Text);
8
9
...

danke schonmal für eure antworten,
MC

von Arc N. (arc)


Lesenswert?

MC wrote:
>
1
> #include <string.h>
2
> 
3
> ...
4
> 
5
> char string[11];
6
> 
7
> strcpy(string, (*Edit).Text);
8
> 
9
> ...
10
>
>
> danke schonmal für eure antworten,
> MC

Schon in die Hilfe zu AnsiString gesehen?
Entweder direkt mit Edit->Text[index] auf die Zeichen zugreifen oder 
wenn's sein muss mit Edit->Text->c_str() den Zeiger auf das char-Array 
besorgen.

von MC (Gast)


Lesenswert?

ich hab die hilfe und meine bücher über string an sich gewälzt. dort 
hatte ich so direkt aber nichts gefunden, um auf einzelne zeichen 
zuzugreifen....

ich hab das mal so ausprobiert wie du das vorgeschlagen hast und beim 
zweiten anlauf lief es. das komische ist, dass wenn der index=0 ist, 
mein programm während der ausführung einen fehler erzeugt. möchte ich 
auf das erste zeichen zugreifen, so muss der index=1 sein...?!
kann mir das jemand erklären? ich hab dazu nichts weiter gefunden.

und noch eine frage hab ich: ich hab aus der hilfe die schreibweise
1
(*Edit).Text
aber die von dir genannte schreibweise
1
Edit->Text
funzt auch... wo ist da genau der unterschied?

danke schonmal,
MC

von Sven P. (Gast)


Lesenswert?

MC wrote:
> und noch eine frage hab ich: ich hab aus der hilfe die schreibweise
>
1
> (*Edit).Text
2
>
> aber die von dir genannte schreibweise
>
1
> Edit->Text
2
>
> funzt auch... wo ist da genau der unterschied?

Es gibt keinen.

von Superberti (Gast)


Lesenswert?

Hi,

> ich hab das mal so ausprobiert wie du das vorgeschlagen hast und beim
> zweiten anlauf lief es. das komische ist, dass wenn der index=0 ist,
> mein programm während der ausführung einen fehler erzeugt. möchte ich
> auf das erste zeichen zugreifen, so muss der index=1 sein...?!
> kann mir das jemand erklären? ich hab dazu nichts weiter gefunden.

Die Erklärung ist ganz einfach und für C/C++-Programmierer eigentlich 
haarsträubend: Die VCL-Klassenbibliothek des BCB ist eine reine 
Pascal-Library und jetzt rate mal bei welchem Index Pascal-Strings 
anfangen?
Bei 1 und nicht bei 0. Man muss also höllisch aufpassen, wenn man auf c 
und Pascal-Strings per Index zugreift!
Aber um kleine und schnelle Programme für Windows zu schreiben ist der 
BCB immer noch sehr gut geeignet.

Gruß,

von MC (Gast)


Lesenswert?

>> funzt auch... wo ist da genau der unterschied?
>
>Es gibt keinen.
gut zu wissen, danke

>Die VCL-Klassenbibliothek des BCB ist eine reine
>Pascal-Library und jetzt rate mal bei welchem Index Pascal-Strings
>anfangen?
auf sowas muss man erstmal kommen, damit hab ich nu wirklich nicht 
gerechnet. danke für die info;)

>Aber um kleine und schnelle Programme für Windows zu schreiben ist der
>BCB immer noch sehr gut geeignet.
sind wirklich nur ganz kleine tools die ich mir da zusammenbastel.
aber so langsam versteh ich, warum über borland geflucht wird...

von MC (Gast)


Lesenswert?

tag leute, ich bin's nochmal.
dank eurer hilfe hab ich mein projekt jetzt fast fertig bekommen. nun 
stehe ich leider vor einem neuen problem und da ich momentan nicht 
zuhause bin komme ich leider an meine c-bücher nicht ran und aus der 
hilfe werd ich nicht wirklich schlau bzw. fündig.

aber nun zu meinem problem: ich hab ein char-array welches ich in einer 
*.hex datei speichern möchte. der aufbau einer *.hex datei is kein 
problem, dazu hab ich genügend gefunden. mein problem liegt eher im 
anlegen der datei.
ich hab's bisher geschafft die datei anzulegen und zu beschreiben. 
allerdings landet die datei immer im verzeichnis wo auch das programm 
abgelegt ist. ich möchte das verzeichnis für die *.hex datei aber frei 
wählen können, am liebsten durch so ein "speichern unter" fenster. 
leider finde ich dazu gar nichts. aber der c++-builder6 sollte als RAD 
doch sowas praktisch fertig bereithalten, oder net?

danke schonmal für eure hilfe,
MC

von Jean P. (fubu1000)


Lesenswert?

Hi,
gibts ja auch schon fertig. Schau mal unter dem "Reiter" Dialog und dann 
SaveDialog.
Oder du gehst auf Ansicht--->Komponentenliste--->TSaveDialog


Gruß

von MC (Gast)


Lesenswert?

danke für den tip!
mit ein bissl googlen hat jetzt alles wunderbar geklappt!
wenn ich ganz fertig bin werd ich mein projekt hier auch mal vorstellen, 
kann mir vorstellen dass einige daran gefallen finden werden ;)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.