![]() |
Probleme mit tStrings und Strings im Memofeld
Hi,
ich habe ein Memofeld, welches mit Text gefüllt ist. Nun muss ich Zeile für Zeile auslesen und bearbeiten. Ich habe zum Bearbeiten eine Funktion geschrieben die ein Array vom Typ String als Result ausgibt. Das ist auch nicht das Problem. Das Problem ist, dass wenn ich mit MEMOFELD.lines.strings[i] in einer for-Schleife jede Zeile einlese und in die Funktion übergebe, Delphi6 meckert, dass die Typen (tsring und string) nicht übereinstimmen. Kann mir jemand sagen, wie ich dieses Problem umgehe??? chrizke |
Re: Probleme mit tStrings und Strings im Memofeld
Ich hab genau das selbe problem^^
|
Re: Probleme mit tStrings und Strings im Memofeld
Herzlich willkommen in der Delphi-PRAXiS, ihr beiden.
Ihr müsst ein wenig Code zeigen - und die Variablen-Definitionen wo nötig. Freundliche Grüße vom marabu |
Re: Probleme mit tStrings und Strings im Memofeld
Moin und herzlich Willkommen in der DP,
Delphi-Quellcode:
gibt dir ein String zurück, du versuchst ihn wahrscheinlich als TStrings zu behandeln. Poste mal bitte deinen Code.
MEMOFELD.lines.strings[i]
Gruß PS: Zitat:
|
Re: Probleme mit tStrings und Strings im Memofeld
Ich sehe nicht, wo das Problem liegen sollte. Lines ist vom Typ TStrings. Mit Memo1.Lines[i] bekommst Du jede einzelne Zeile; mit TStrings (also einer "Kopie" von Memo1.Lines) könntest Du mindestens genauso gut arbeiten wie mit einem Array; und es gibt genügend Funktionen zum Kopieren; z.B.:
Delphi-Quellcode:
Vielleicht kannst Du genauer angeben, bei welcher Zuordnung die inkompatiblen Typen bemängelt werden.
Kopie.Add(Memo1.Lines[i]);
Kopie.AddStrings(Memo1.Lines); Gruß Jürgen |
Re: Probleme mit tStrings und Strings im Memofeld
also hier ist die Zeile die den Fehler:
Delphi-Quellcode:
So Split ist wie folgt deklariert:
Zeile := mAnzeige.lines.strings[i];
Zeilenarray:=Split(Zeile, ';'); Der Interface Teil:
Delphi-Quellcode:
Der Implementation Teil:
type
TStringArray = array of String; function Split(strring, trennzeichen: String): TStringArray;
Delphi-Quellcode:
Ich brauche das Array als Result, nur nen String bringt nichts!
function Split(strring, trennzeichen: String): TStringArray;
var I, L: Integer; begin SetLength(Result, 0); if strring = '' then Exit; I := Pos(trennzeichen, strring); L := Length(trennzeichen); while I > 0 do begin Result[High(Result)] := copy (strring,1,I-1); delete(strring,1,I); end; |
Re: Probleme mit tStrings und Strings im Memofeld
Wie hast Du denn "Zeilenarray" deklariert.
Grüße Klaus |
Re: Probleme mit tStrings und Strings im Memofeld
Vielleicht solltest du dich zuerst mal um deine Split-Funktion kümmern - da liegt einiges im Argen. Deine Schleife steuerst du mit I, aber I wird in der Schleife nicht angepasst.
Der Zugriff auf die einzelnen Zeilen des Memos kann auch über Memo.Lines[i] erfolgen und du kannst den String auch sofort an deine Splitfunktion übergeben - ein Umspeichern ist nicht nötig. Freundliche Grüße |
Re: Probleme mit tStrings und Strings im Memofeld
zeilenarray wird wie folgt deklariert:
Delphi-Quellcode:
zeilenarray:array of String;
Es geht mir im Moment nur um das Typenproblem und nicht um die Funktion, dass da noch teile nicht ganz ausgereift sind ist mir klar. |
Re: Probleme mit tStrings und Strings im Memofeld
wie ist zeile (sollte ein normaler string sein) deklariert?
Zitat:
poste eventuell aml den ganzen source code |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz