Avatar billede netro Nybegynder
22. november 2004 - 00:04 Der er 11 kommentarer og
1 løsning

Memofelt og char

Jeg har to spørgsmål ang datatyper.

1) Hvilken variabeltype skal jeg bruge til at opbevare alle linier fra en TMemo?
vartype Memotekst = Memofelt->Lines;

2) Hvordan henter jeg et felt fra en DB-tabel ud i en variabel af typen char?
char Chartekst = IBQuery->FieldByName("Felt")->As ? ;
Avatar billede netro Nybegynder
22. november 2004 - 00:12 #1
Jeg anvender C++ Builder 5.
Avatar billede bertelbrander Novice
22. november 2004 - 00:26 #2
1:
TStrings *List = Memofelt->Lines;

2:
Ved ikke.
Avatar billede netro Nybegynder
22. november 2004 - 00:41 #3
Tak, det virker jo fint.

Men hvordan får jeg så disse linier indsat i en tabel?
String SQL="Insert Into Tabel(Felt) Values('"+List+"')";

- og hvordan skal de hentes ud fra tabellen igen til objektet List?

Linieskift skulle gerne bevares.
Avatar billede bertelbrander Novice
22. november 2004 - 00:53 #4
Man henter og sætter texten som en lang streng. Hver linie er adskilt af "\r\n".

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TStrings *List = Memo1->Lines;
  MessageBox(0, List->GetText(), "Whatever", MB_OK);
  List->SetText("Whatever\r\nLine2");
}
Avatar billede bertelbrander Novice
22. november 2004 - 00:59 #5
Et lidt mere korrekt eksempel:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TStrings *List = Memo1->Lines;
  char *Text = List->GetText();
  MessageBox(0, Text, "Whatever", MB_OK);
  StrDispose(Text);
  char *NewText = "Whatever\r\nLine2";
  List->SetText(NewText);
}
Avatar billede netro Nybegynder
22. november 2004 - 01:03 #6
Okay, nu virker mit SQL-statement vist, men jeg kan ikke helt finde ud af at trække listen ud af tabellen igen.

TStrings *List;
List->SetText(IBQuery->FieldByName("Tekst")->AsString);
Avatar billede bertelbrander Novice
22. november 2004 - 01:10 #7
Jeg ved ikke hvordan man hiver ting ud af en DB.
Jeg går ud fra at du har sat List til at pege på noget ?
Avatar billede netro Nybegynder
22. november 2004 - 01:14 #8
Det er egentlig også irelevant med tabellen her.
Jeg forsøger følgende:

TStrings *List1 = Memo1->Lines;
String NewList = List1->GetText();

TStrings *List2 = SetText(NewList);

Den sidste linie fejler.
Avatar billede bertelbrander Novice
22. november 2004 - 01:25 #9
Måske:
  List->SetText(NewList.c_str());
Avatar billede netro Nybegynder
22. november 2004 - 01:37 #10
Ja, jeg fandt lige ud af, at den vil have en char* fremfor en AnsiString.
- men det har du jo også skrevet i dit eksempel.

Jeg tror, det hele skulle virke nu, så jeg takker mange gange for hjælpen.
Læg gerne et svar.
Avatar billede bertelbrander Novice
22. november 2004 - 01:40 #11
Jeg samler ikke på point.
Avatar billede netro Nybegynder
22. november 2004 - 01:43 #12
...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester