Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String in char konvertieren (https://www.delphipraxis.net/126113-string-char-konvertieren.html)

Zioone 18. Dez 2008 10:40


String in char konvertieren
 
hi,
hab da mal wieder ein Problem.

Ich wollte einen String in ein Char umwandeln.
Schön und gut, gefunden hatte ich dafür Pchar()

Nur bringt er mir jetzt eine Fehlermeldung: [Fehler] Inkompatible Typen: 'Char' und 'PAnsiChar'
Und ich habe leider keine Idee wie ich das in ein "richtiges" Char umwandeln kann.

hier mal der Code^^:

Delphi-Quellcode:
procedure TFrmInfo.SaveStringGrid(Grid: TAdvStringGrid; const FileName: TFileName);
var
  iRow: integer;
  sl: TStringList;
  ini: TIniFile;
  ss: string;
begin
  ini := TIniFile.Create(ExtractFilePath(ParamStr(0))+'settings.ini');
  sl := TStringList.Create;
  for iRow := 0 to Grid.RowCount - 1 do
  begin
    ss := ini.ReadString('settings','sptList',';');
    Grid.Rows[iRow].Delimiter := PChar(ss);
    sl.Add(Grid.Rows[iRow].DelimitedText);
  end;
  sl.SaveToFile(fileName);
  sl.Free;
  ini.free;
end;
Soll eine Stringliste in eine txt speichern und das Trennzeichen wollte ich selber festlegen.
Aber der Delimiter braucht ein char.


Ich habe auch schon die Suche benutzt und nichts brauchbares gefunden. Dort gehts immer nur um Pchar().

Wäre dankbar für eine Idee/Hilfe :)

jfheins 18. Dez 2008 10:42

Re: String in char konvertieren
 
mystringvar[1]; :?:

Zioone 18. Dez 2008 10:53

Re: String in char konvertieren
 
meinst du das so:

Delphi-Quellcode:
ss[1] := ini.ReadString('settings','sptList',';');
Grid.Rows[iRow].Delimiter := PChar(ss[1]);
sl.Add(Grid.Rows[iRow].DelimitedText);
o_O?
weil das geht nicht, oder ich hab dich falsch verstanden... :oops:

DeddyH 18. Dez 2008 10:54

Re: String in char konvertieren
 
Delphi-Quellcode:
ss := ini.ReadString('settings','sptList',';');
Grid.Rows[iRow].Delimiter := ss[1];
sl.Add(Grid.Rows[iRow].DelimitedText);

Nersgatt 18. Dez 2008 10:55

Re: String in char konvertieren
 
Erwartet Grid.Rows[iRow].Delimiter wirklich ein PChar? Oder ein Char?
Wenn es nur ein Char erwartet, dann lass das PChar() weg.
Und ich glaube, Du musst das Element [0] referenzieren, wenn Du das erste Zeichen des Strings möchtest.

Gruß,
Jens

jfheins 18. Dez 2008 10:57

Re: String in char konvertieren
 
Zitat:

Zitat von Nersgatt
Und ich glaube, Du musst das Element [0] referenzieren, wenn Du das erste Zeichen des Strings möchtest.

Delphi Distinction Criteria Fail.

In Delphi-String ist [1] das erste Element.

SirThornberry 18. Dez 2008 10:57

Re: String in char konvertieren
 
Delimiter muss ein Char (ein einzelnes Zeichen) sein. Ein String kann aber aus mehreren Zeichen bestehen weswegen eine Zuweisung nicht möglich ist. Einfach String_Variable[1] zu verwenden kann ebenfalls in die Hose gehen wenn der String 0 Zeichen enthält. Entsprechend sollte man das vorher prüfen.

Und der Vollständigkeithalber: PChar ist ein Pointer auf einen Char, Also ein Pointer der auf ein Zeichen zeigt.

Nersgatt 18. Dez 2008 10:57

Re: String in char konvertieren
 
Zitat:

Zitat von jfheins
In Delphi-String ist [1] das erste Element.

Hast mich überzeugt. :-D

Zioone 18. Dez 2008 10:59

Re: String in char konvertieren
 
oh :oops:
Danke euch es geht =) :love:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 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