Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Lange Strings im Record (https://www.delphipraxis.net/131283-lange-strings-im-record.html)

himitsu 22. Mär 2009 10:51

Re: Lange Strings im Record
 
joar, Delphi achtet da zumindestens schön drauf ^^

aber das es sich um einen Record für eine Datei handelt, hättest du schon sagen müssen.

solange du mit den "alten" Pascal-Functionen arbeitest, ist für die das Char-Array die einzige Möglichkeit.

bei z.B. TSream-Nachkommen könnte man String/AnsiString verwende, müßte aber den Stringinhalt selbst speichern (z.B. als String mit abschließender #0, zur Begrenzung
oder indem man die Stringlänge vorher mit speichert ... beispiele gibt's da genügend im Forum)

oldmann 22. Mär 2009 11:24

Re: Lange Strings im Record
 
Hallo Leute,
das sind ja viele Antworten auf einmal.
Erst einmal danke dafür.
Erste Frage: Was sind Delphi Tags?
Wenn ich das bisher richtig verstanden habe wird es nur wie im ersten Beitrag beschrieben mit:
'bemerkung:Array[1..1024] of AnsiChar;' gehen.
Da ich mich damit überhaupt nicht auskenne wäre ich Euch für ein wenig Hilfestellung dankbar.
Wie speichere ich ein solches Array in meiner typisierten Datei?
Wie lesen ich das Array wieder aus der Datei aus und zeige es in einem Memo an?

Ich wäre Euch für ein paar Beispiele, die auch ich verstehen kann, dankbar.

Gruss Oldmann

Satty67 22. Mär 2009 11:33

Re: Lange Strings im Record
 
Über dem Editor-Fenster hier im Forum gibt es den Button "Delphi-Code". Cursor vor den Code setzen "Klick" und dann Cursor ans Ende des Code "Klick". Du siehst dann wie die Tag's aussehen und kannst die später auch manuell setzen.

In deinem Record ersetzt Du einfach String[255] durch Array[1..1024] of AnsiChar. Der Rest bleibt so wie es war...

Einfach mal ausprobieren, wenn Du eine Stelle hast, wo der Austausch Probleme macht, einfach nochmal gezielt nachfragen.

himitsu 22. Mär 2009 11:39

Re: Lange Strings im Record
 
Zitat:

Zitat von Satty67
Über dem Editor-Fenster hier im Forum gibt es den Button "Delphi-Code". Cursor vor den Code setzen "Klick" und dann Cursor ans Ende des Code "Klick".

oder Code markieren ein dann nur einmal auf den Button klicken :stupid:


Ach ja ... nur zum Verständnis: (bis D2007)

String = AnsiString
String[x] = ShortString

und ein ShortString kann nur 0 bis 255 Zeichen enthalten, da er für die Längenangabe ein Byte Verwendet.

Luckie 22. Mär 2009 11:52

Re: Lange Strings im Record
 
Mach aus dem Record eine Klasse. In der Klasse kannst du dann eine Metohde implementieren zum Speichern der Felder. Das wäre dann auch eine saubere OOP Lösung. Als Datenformat würde ich dann, wenn es nicht viele Daten sind eine Ini-Datei nehmen oder, wenn es ein paar mehr Daten sind, eine XML-Datei.

Satty67 22. Mär 2009 12:02

Re: Lange Strings im Record
 
Ob das oldman's aktuelle Fähigkeiten nicht übersteigt? Er sollte es lernen (früher als z.B. ich), aber ein Erfolgserlebnis mit seinem aktuellen Code ist auch ganz schön.

Luckie 22. Mär 2009 12:18

Re: Lange Strings im Record
 
Ich weiß nicht, wie weit fortgeschritten oldman ist. Aber eventuell hilft es ja anderen die weiter fortgeschritten sind und vor dem gleichen Problem stehen.

Es heißt übrigens "oldmans". Im deutschen gibt es das besitzanzeigende Apostroph nicht. ;)

Satty67 22. Mär 2009 13:07

Re: Lange Strings im Record
 
Ok, OK... sah für mich wohl bei dem englischen Wort einfach besser aus :stupid:

Ich hab' mir schon ein paar kleine Klassen gebastelt (seit der letzten Aufforderung hier im Forum). Klappt auch so langsam ganz gut. Den praktischen Nutzen bei bestimmten Aufgaben (besonders wenn Daten im Spiel sind) weis ich inzwischen auch zu schätzen.

Luckie 22. Mär 2009 13:29

Re: Lange Strings im Record
 
Na ja, der Vorteil eine Klasse ist eben, dass man die Daten und die Methoden, die diese Daten manipulieren, zusammen hat.

oldmann 22. Mär 2009 16:06

Re: Lange Strings im Record
 
Hallo Leute,
das sind viele Antworten.
Erst einmal danke dafür.
Allerdings hatten die letzten 4 Antworten überhaupt nichts mehr mit dem Thema zu tun.
Mein Problem ist bisher nicht gelöst.
Also frage ich noch einmal.
Bisher habe ich verstanden das ich die Variable 'bemerkung' im Record als 'Array[1..1024] of AnsiChar' benennen muss.
Da ich mich damit überhaupt nicht auskenne wäre ich Euch für ein wenig Hilfestellung dankbar.
Wie speichere ich ein solches Array in meiner typisierten Datei?
Wie lesen ich das Array wieder aus der Datei aus und zeige es in einem Memo an?


Es wird doch unter Euch sicher Experten geben die mir hier weiterhelfen können.

Ich wäre Euch für ein paar Beispiele, die auch ich verstehen kann, dankbar.

Gruss Oldmann


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:41 Uhr.
Seite 2 von 3     12 3      

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