String in char[] umwandeln (war: Newby frage)
-
is zwar lang, aber mein Kollege besteht darauf den gesammten Quelltext zu posten:
außerdem will der die "straße" nich mehr ausgeben ...//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- int i=0; struct besucher { int anrede; AnsiString nachname[20]; AnsiString vorname[20]; AnsiString strase[20]; int hausnr; int plz; AnsiString ort[20]; AnsiString region[20]; }; struct besucher gaeste[50000]; void __fastcall TForm1::ButtonSpeichernClick(TObject *Sender) { gaeste[i].nachname[20]=EditNachname->Text; EditNachname->Text=' '; gaeste[i].vorname[20]=EditVorname->Text; EditVorname->Text=' '; gaeste[i].strase[20]=EditStrase->Text; EditStrase->Text=' '; gaeste[i].hausnr=StrToInt(EditHausnr->Text); EditHausnr->Text=' '; gaeste[i].plz=StrToInt(EditPLZ->Text); EditPLZ->Text=' '; gaeste[i].ort[20]=EditOrt->Text; EditOrt->Text=' '; gaeste[i].region[20]=EditRegion->Text; EditRegion->Text=' '; } //--------------------------------------------------------------------------- void __fastcall TForm1::ButtonShowClick(TObject *Sender) { EditNachname->Text=gaeste[i].nachname[20]; EditVorname->Text=gaeste[i].vorname[20]; EditStrase->Text=gaeste[i].strase[20]; EditHausnr->Text=IntToStr(gaeste[i].hausnr); EditPLZ->Text=IntToStr(gaeste[i].plz); EditOrt->Text=gaeste[i].ort[20]; EditRegion->Text=gaeste[i].region[20]; } //---------------------------------------------------------------------------
Edit:
Bitte die Code-Tags benutzen. Danke!
-
Hunter666 schrieb:
//[20] kannst du dir sparen struct besucher { int anrede; AnsiString nachname[20]; AnsiString vorname[20]; AnsiString strase[20]; int hausnr; int plz; AnsiString ort[20]; AnsiString region[20]; }; //hier also auch weg mit [20] gaeste[i].nachname[20]=EditNachname->Text; //und hierfür kannst du EditNachname->Clear() nutzen EditNachname->Text=' ';
Durch die anweisung
gaeste[i].nachname[20] = Edit->Text
willst du nur an die 20. Stelle im String deinen Text hinspeichern, daher kann das so nicht funktionieren
und nur mal so ne frage: wo ist i deklariert??
-
Und was soll das hier?
AnsiString nachname[20];
Damit erstellst du ein Array aus 20 Strings.
-
ok thx erst mal,
des mit den 20er Arrays war nur ein test, trotzdem danke für die dementsprechenden tips.
das mit den codetags hab net gewusst, wird nich wieder vorkommen...
danke für des "clear" - hat uns wirklich wietergeholfen, fett thx
i ist global deklariert, bzw. initialisiert
-
so ... neues Prob. hab grad schon gesucht wie sau ... aber nix gefunden.
ich will AnsiString nach TString* konvertieren, d.h. eingegebenen Text (Edit->Text) in eine ComboBox bekommen, alle "logischen" Befehle was ich mir so zusammengereimt habe gehen net, hier etwas Quelltext:AnsiString firmen; firmen=EditBusFirmen->Text; EditBusFirmen->Clear(); ComboBox1->Items=firmen; //???????????? hilfe
-
Hi,
musst ein wenig mehr mit der hilfe rumspielen...
Items ist TStrings und TStirngs hat ne Methode Add()....schwupps schon sollten die Einträge in die Combobox gehen
CU
-
TStrings ist eine Liste. Zu einer Liste fügt man Objekte hinzu oder löscht sie daraus. Was heisst "Hinzufügen" auf Englisch? Und jetzt nochmal TComboBox::Items in der Hilfe ansehen!
-
PuppetMaster2k schrieb:
Durch die anweisung
gaeste[i].nachname[20] = Edit->Text
willst du nur an die 20. Stelle im String deinen Text hinspeichern, daher kann das so nicht funktionieren
und nur mal so ne frage: wo ist i deklariert??
An die 21. Stelle um genau zu sein und der Array hat nur 20 stellen
-
die 20er arrays sind natürlich längst weg...
thx euch allen, ich weis nicht was wir ohne euch gemacht hätten - und weiterhin tun werden (vielleicht).
ComboBox1->Items->Add(firmen);
hat wunderbar geklappt, thx
werd mich wieder melden wenn ich nix finde, aber die hilfe von borland alleine hat uns auch schon ziemlich weitergeholfen
-
1ntrud0r schrieb:
An die 21. Stelle um genau zu sein und der Array hat nur 20 stellen
mein ich doch
-
hi, wir haben da folgendes Problem:
Wir machen eine Datenbank in der oben eine liste von den datensätzen angezeigt werden soll und unten dann ein formular in dem die datensätze verändert werden können, dazu wollen wir drei verschiedene Kategorien (Besucher, Bus, Hotel) erstellen und haben festgestellt, dass nicht alle drei in das eine frame passen, jetzt habe ich zwei fragen:
1. Wie ist das am einfachsten zu realisiern (Datenbank technisch von C++, Paradox 7 schon probiert, aber filter funktion und so sollte drin sein).
2. Wie kann ich noch ein frame öffnen in dem der User bsp. die Hotel daten eingeben kann?
-
Was hat das mit dem eigentlichen Thread zu tun???
-
ja das es eigentlich "unser" Thread ist, und ich dachte ich schreib hier jeweils unsere Porbleme rein... oder soll ich jedesmal ein eigenes thread öffnen?
-
also bei ansistring beginnt der index mit 1. demzufolger ist nachname[20] auch das 20. zeichen und nicht das 21.!
-
Für neue Fragen bitte immer auch einen neuen Thread benutzen. Natürlich nicht, ohne vorher ausführlich von der BCB-Hilfe, der FAQ und der Suchfunktion hier Gebrauch gemacht zu haben. Danke!
-
ja, um gewisse mit j beginnende Moderatoren zu zitieren
"ein Thread pro Thema, ein Thema pro Thread"(war jetzt garantiert falsch aber.. so etwa)
Erhöht auch die Übersichtlichkeit für die Suchfunktion um einiges und es übersehen die meisten nicht so einfach die zweite Frage.
-
Sunday schrieb:
demzufolger ist nachname[20] auch das 20. zeichen und nicht das 21.!
Aber nicht, wenn wie hier mit String nachname[20]; ein Array von Strings deklariert wurde.
-
Und im Übrigen: Bei Combobox und anderen Listen gillt:
Wenn man einem bestimmten Index der Box ein String zuweisen will, dann hat man 3 Möglichkeiten:
1. Es ist in String, der hinzugefügt werden soll, aber nicht an letzter Stelle:
ListBox1->Items->Insert(int,AnsiString); //int ist die Angabe für Index und AnsiString der einzufügende String.
2. Es ist ein String, der am ende angehängt werden soll:
ListBox1->Items->Add(AnsiString);
3. Ein bestimmter Index der ListBox soll ersetzt werden:
ListBox1->Items->Strings[int]=AnsiString;
Nurmal so, weil er vorhin das hier meinte:
ComboBox1->Items[int]=String;
-
Ja wie kann ich dann aber an einer bestimmten stelle der ComboBox etwas rauslöschen, ohne es zu ersetzen???