AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lange Strings im Record

Ein Thema von oldmann · begonnen am 22. Mär 2009 · letzter Beitrag vom 23. Mär 2009
Antwort Antwort
Seite 1 von 3  1 23      
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
138 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Lange Strings im Record

  Alt 22. Mär 2009, 08:57
Hallo,

gibt es in Delphi eine Möglichkeit in einem Record einen längeren String als 255 Zeichen zu benutzen.
Ich arbeite mich Delphi 6 Prof.

Mit freundlichen Grüssen,
Oldmann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.116 Beiträge
 
Delphi 12 Athens
 
#2

Re: Lange Strings im Record

  Alt 22. Mär 2009, 09:15
Eigentlich sollte es möglich sein, nur liegen dann die Textdaten nicht im Record, sondern im Record ist nur ein 4-Byte-Zeiger auf den Text enthalten.

direkt im String ginge nur ein Char-Array

Delphi-Quellcode:
Type TMyRec = Record
    String1: String;
    String2: AnsiString;
    Text1: Array[1..1024] of AnsiChar;
    Text2: Array[0..1023] of Char;
  End;
das sind beides sozusagen strings mit je maximal 1024 Zeichen.

String1 und String2: hier wären halt nir die Zeiger im Array und der Rest irgendwo anders.

Text1:
- Index 1 bis 1024 mach ich lieber so, da es so mit der Indizierung eines Strings übereinstimmt
- AnsiChar entspricht in D6 noch dem Char, aber in D2009 wäre Char=WideChar
und damit es dort keine Probleme gibt, nutz da lieber direkt AnsiChar

Text2:
- Index 0 bis 1024 würden viele nehmen, da die dymaischen Array und vieles andere mit dem Index 0 beginnt
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Lange Strings im Record

  Alt 22. Mär 2009, 09:16
Natürlich geht das. Du möchtest deinen Record aber bestimmt auch abspeichern. Da wird das dann etwas komplizierter. Sag mal, was du machen willst.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
138 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Lange Strings im Record

  Alt 22. Mär 2009, 09:45
Hallo,

hier ist ein Beispiel:
Es geht z. B. um folgenden Record:
Delphi-Quellcode:
 type
   Dateien=record
   Gegenstand,Raum,bemerk:string[25];
   preis:double;
   Anzahl:Integer;
   gekauft_am:string[10];
   identnr,bild:String[15];
   bemerkung:String[255];
 end;

Das ganze wird dann als Datensatz gespeichert.

Ausgegeben wird das dann in ein Stringgrid z. B. So:

     assignfile(hrdat,lpf+'Datei.dat');
     reset(hrdat);
     while not eof (hrdat) do
     begin
         read(hrdat,daten);
        StringGrid1.cells[0,reihe]:=daten.gegenstand;
        StringGrid1.cells[1,reihe]:=daten.raum;
        ….usw.
     end;
     closefile(hrdat);
Das Feld 'Bemerkung' wird unter dem Stringgrid in eine Memo ausgegeben.
Ich möchte aber das Feld 'Bemerkung' grösser haben das mehr Daten eingegeben werden können.
Wie kann ich das anstellen.

Gruß Oldmann
  Mit Zitat antworten Zitat
quendolineDD

Registriert seit: 19. Apr 2007
Ort: Dresden
781 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Lange Strings im Record

  Alt 22. Mär 2009, 10:12
Vielleicht könntest du noch die Delphi-Tags setzten, damit dein Code lesbarer wird.
Wenn du einen String mit 255 Zeichen vorgibst, und ihn verlängern möchtest, dann solltest du die Zahl erhöhen
Lars S.
Wer nicht mit der Zeit geht, geht mit der Zeit.
  Mit Zitat antworten Zitat
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
138 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: Lange Strings im Record

  Alt 22. Mär 2009, 10:24
Hallo,

nach meiner Kenntnis kann ein String in einem Record nur max. 255 Zeichen enthalten.
Wenn ich die Zahl einfach erhöhen könnte, hätte ich das Problem nicht.
Gruss Oldmann
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Lange Strings im Record

  Alt 22. Mär 2009, 10:28
Ein ShortString kann nur maximal 255 Zeichen lang werden. Bei einem AnsiString besteht diese Beschränkung nicht
Markus Kinzler
  Mit Zitat antworten Zitat
oldmann

Registriert seit: 10. Okt 2008
Ort: Weyhe
138 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: Lange Strings im Record

  Alt 22. Mär 2009, 10:42
hallo mkinzler,

Leider kenne ich mich mit Ansistrings nicht aus.
Wenn ich hinter 'Bemerkung:Ansistring' setze kommt ein Fehlermeldung:
'Benötigt Finalization, nicht inm Dateityp erlaubt.'
Wie muss ich einen Ansistring deklarieren?

Gruss Oldmann
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Lange Strings im Record

  Alt 22. Mär 2009, 10:46
Genauso. Allerdings ist dieser dann 0-terminiert, d.h. hat keine feste Länge und kann deshalb nicht in einer typisierten Datei verwendet werden. Du musst, wie oben beschrieben auf einen Char Array ausweichen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Lange Strings im Record

  Alt 22. Mär 2009, 10:49
@oldman: Könntest du bitte noch die Delphitags setzen. Dazu einfach auf über dem entsprechenden Beitrag klicken und dann den Beiträg entsprechend ändern.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz