Autor Beitrag
Freeman1982
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Windows XP

BeitragVerfasst: Do 31.03.05 03:53 
Hallo,

ich möchte den Inhalt eines Memo Felds in eine Variable schreiben dazu habe ich eine String variable verwendet. Das problem ist nur das ein String nur 255 Zeichen aunehmen kann und er mir den Text in dem Feld dann abschneidet. gibt es eine Text Variable die mehr als 255 Zeichen aufnehmen kann??


MfG

Freeman1982


Moderiert von user profile iconraziel: Topic aus Dateizugriff verschoben am Do 31.03.2005 um 09:34
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Do 31.03.05 04:08 
WideString - 2^31 Buchstaben
AnsiString - 2^30 Buchstaben
Freeman1982 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Windows XP

BeitragVerfasst: Do 31.03.05 04:18 
Ja wie tu ich den das deklarieren??

ich will den Text in eine datdatei Speichern in die Variable dat_Beschreibung?

So sieht das im Moment aus

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
type artikel_satz = record
       dat_ArtNr             : integer;
       dat_Bezeichnung       : string[50];
       dat_Warengruppe       : string[20];
       dat_EKPreis           : double;
       dat_VKPreis           : double;
       dat_Lagerbestand      : integer;
       dat_Mindestbestand    : integer;
       dat_Beschreibung      : String[255];
       dat_Bild              : string[100];

     end;

     artikel_file                  = file of artikel_satz;


Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Do 31.03.05 04:22 
Wenn du die [255] wegmachst, dann sucht Delphi automatisch den passenden Typ raus ;)
Freeman1982 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Windows XP

BeitragVerfasst: Do 31.03.05 04:30 
wenn ich überall die Klammern und die Zahlen weg lasse:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
 type artikel_satz = record
       dat_ArtNr             : integer;
       dat_Bezeichnung       : string;
       dat_Warengruppe       : string;
       dat_EKPreis           : double;
       dat_VKPreis           : double;
       dat_Lagerbestand      : integer;
       dat_Mindestbestand    : integer;
       dat_Beschreibung      : String;
       dat_Bild              : string;

     end;

     artikel_file                  = file of artikel_satz;


dann bekomme ich aber folgende Fehlermeldung:

[Fehler] haupt.pas(81): Typ 'artikel_satz' benötigt Finalization - nicht im Dateityp erlaubt

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Do 31.03.05 04:43 
Moin,

ich habe noch nie mit Records gearbeitet, aber ich hab mir mal das geradeeben zusammen gebaut:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button1Click(Sender: TObject);
type g = record
   b : string;
  end;
var z : fg;
begin
 z.b := Memo1.Lines.text;
 showmessage(inttostr(length(z.b)));
end;


z.b. kann hier jede erdenkliche grösse annehmen, und ich brauche auch keine grössendefinition.

Zeig mal deinen kompletten qc damit wird vergleichen können.


//edit: Okay ich sehs. Du arbeitest mit typisierten Dateien. Bist du sicher das dass nötig ist? Ich schätz mal du machst das um abspeichern zu können. Dann würde ich dir fast raten die Beschreibung getrennt vom restlichem Record in einer StringList abzuspeichern, und dann das eben auch beim laden des Records zu beachten. Zumindest fällt mir ehrlich gesagt keine richtige Lösung ein...
Freeman1982 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Windows XP

BeitragVerfasst: Do 31.03.05 04:53 
Also ich habe mal den Teil vom Prgramm zusammen gepackt um den es geht.

Ist ein Schulproject zu Dateiverarbeitung. Das Thema durfente wir frei wählen. Ich habe eine Erotik shop geschrieben. Nur das du dich nicht wunderst wegen den Bildern :D. Das ganze Programm ist ein bischen umfangreich. Wenn du es aber trotdem mal sehen willst kann ich es dir ja mal schicken wenn es fertig ist.

Wäre nett wenn du das irgendwie hin bekommen könntest das er den Text nicht abschneidet bei speichern. Ich Blick da nicht durch.

Wenn nich muss ich halt drauf auchten das ich nicht über 255 zeichen komme.

MfG

Freeman1982
Karlson
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 2088



BeitragVerfasst: Do 31.03.05 05:11 
Naja, also die Programmierung kannste selber machen ;) Wie gesagt, ich habe noch nie mit Records gearbeitet, und habe weder Zeit noch Lust mich in dein Projekt einzuarbeiten.

Aber der Weg ist doch ganz einfach. Momentan speicherst du den Beschr. Text als Bestandteil des Records. Speichere den Beschreibungstext einfach mit memo1.lines.savetofile('c:\namedesartikels.txt'); ab und speicher im Record den Pfad der Datei. Beim Laden des Records liest du dann einfach den Pfad aus und lädst die Datei manuell mit memo1.lines.loadfromfile(deinrecord.pfadderbeschreibung);
Freeman1982 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24

Windows XP

BeitragVerfasst: Do 31.03.05 05:15 
Cool danke das ist natürlich auch eine Möglichkeit danke!
Sie haben mir echt weiter gehlofen!! :D

MfG

Freeman1982