AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign TStringList.Delimiter := Edit_1.text....TCaption vs. Char

TStringList.Delimiter := Edit_1.text....TCaption vs. Char

Ein Thema von juergen · begonnen am 2. Feb 2013 · letzter Beitrag vom 4. Feb 2013
Antwort Antwort
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.687 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

AW: TStringList.Delimiter := Edit_1.text....TCaption vs. Char

  Alt 2. Feb 2013, 17:54
Du hast zwei Moeglichkeiten:

 sl.Delimiter := PAnsiChar(Main_Form.edt_Delimiter.Text)^; oder (einfacher):

 sl.Delimiter := Main_Form.edt_Delimiter.Text[1]; Allerdings solltest Du allererstes pruefen, ob Text nicht leer ist, sonst kommt dabei Muell raus.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: TStringList.Delimiter := Edit_1.text....TCaption vs. Char

  Alt 2. Feb 2013, 18:09
Also ich würde gleich Nägel mit Köpfen machen und ein eigene Funktion/Methode vorsehen:
Delphi-Quellcode:
// liefert das Delimterzeichen zurück
// zusätzlich darf man auch ein #-Zeichen gefolgt von einer Zahl angeben
// Beispiel: '#8' ==> Tabulatorzeichen
// '#$FF' ==> ASCII-Zeichen 255
function StringToDelimiter(s:string):char;
const
  DEFAULT_DELIM =';';
var
  i : Integer;
begin
  if s = 'then
    s := DEFAULT_DELIM
  else if s[1] := '#then
  begin
    i := StrToIntDef(Copy(s, 2, 5), ord('#'));
    s := Chr(i);
  end;
  result := s[1];
end;

sl.Delimiter := StringToDelimiter(Main_Form.edt_Delimiter.Text);
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: TStringList.Delimiter := Edit_1.text....TCaption vs. Char

  Alt 2. Feb 2013, 18:11
Eigentlich wurde alles schon gesagt, aber vielleicht noch das Wesentliche: Edit1.Text enthält einen String, sl.Delimiter möchte einen Char. Du kannst einem Char nicht ein String zuweisen. Umgekehrt geht es, aber nicht so. String ist eine Zeichenkette, Char nur ein Zeichen.

Eine Möglichkeit ist so wie oben, wobei ich es so nicht machen würde, denn wenn Edit1.Text leer ist und du über Edit1.Text[1] liest, dann kracht es.

Besser ist so:

Delphi-Quellcode:
if Length(Edit1.Text) > 0 then
  sl.Delimiter := Edit1.Text[1]
else
  ... was auch immer
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.176 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TStringList.Delimiter := Edit_1.text....TCaption vs. Char

  Alt 4. Feb 2013, 18:37
Hmm, ich sehe gerade, dass mein letzter Post vom Samstag hier fehlt.
Dabei war ich mir sicher den abgesendet zu haben.

@Popov
Genauso hatte ich es auch gemacht. Danke für den Hinweis.

@sx2008,
Bist du Hellseher? Genau das hattee ich benötigt und war am Samstag schon dran, als ich deinen Post sah. Vielen Dank!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 18:04 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