![]() |
Leerzeichen aus dem String löschen ?
Hallo,
ich habe einen String áusgelesen und will ihn nun mit einem anderen Vergleichen, falls die beiden identisch sind, passieren Folgeaktionen. Jetzt das Problem: Am ende des eingelesenen String ist eine freie Stelle. Ich dachte ein Leerzeichen,aber TRIM machte keinen Unterschied. Dannn dachte ich an einen Tab, aber Pos(#9,string) gab 0 aus. Was könnte es noch sein und wie kriege ich es weg? |
Re: Leerzeichen aus dem String löschen ?
mach mal
Delphi-Quellcode:
dann kannst du den ascii code des Zeichens sehen.
showmessage(inttostr(ord(String[length(String)])));
|
Re: Leerzeichen aus dem String löschen ?
Das gibt ne 32 aus
|
Re: Leerzeichen aus dem String löschen ?
ok dann wirds merkwürdig.
denn 32 ist der ascii code für das Leerzeichen. Evtl postest du mal dein Programm als zip oder so, das man sich das mal ansehen kann. |
Re: Leerzeichen aus dem String löschen ?
Also ein Leerzeichen :gruebel:
Versuch es mal mit StringReplace() |
Re: Leerzeichen aus dem String löschen ?
Und was soll ich ersetzen und wodurch?
|
Re: Leerzeichen aus dem String löschen ?
Zeig doch einfach mal den Code, der angeblich nicht funktioniert. Ich weiss mit 100%iger Gewissheit, das man Leerzeichen durch 'Trim' wegschnippeln kann. Alternativen sind auch 'RightTrim' und 'LeftTrim'.
|
Re: Leerzeichen aus dem String löschen ?
Zitat:
|
Re: Leerzeichen aus dem String löschen ?
Ich glaube, es liegt gar nicht an dem Code, sondern an dem String bzw. dem & im String?
StatName=(c) 2007 by A&B |
Re: Leerzeichen aus dem String löschen ?
Nein, bestimmt nicht. Dazu ist der Quellcode von 'Trim' zu simpel gestrickt. Zeig bitte den Code, sonst wird das nichts.
|
Re: Leerzeichen aus dem String löschen ?
Delphi-Quellcode:
function TKomMainWnd.DateiNameRohdaten(StatNr: Integer): string;
var i,j: integer; SecList1, SecList2 : TStringList; SessionIni: TIniFile; ident, test1, test2 : string; liste: Tstrings; begin SecList1 := TStringList.Create; SecList2 := TStringList.Create; try SessionIni := TIniFile.Create(ExtractFilePath(Application.ExeName)+'Sessions.ini'); with SessionIni do begin SessionIni.ReadSections(SecList1); for j := 0 to SecList1.Count - 1 do begin SessionIni.ReadSectionValues(SecList1[j],SecList2); ident := ('StatName='+Logger.StatParam.StatName); if SecList2.IndexOf(ident) > -1 then begin RohdatenPfad := SessionIni.ReadString(SecList1[j],'Rohpfad','C:\Data') end else RohDatenPfad := DalosOptions.GetOption('RohdatenPfad','','DALOSWin') end; end; finally SecList2.Free; SecList1.Free; end; |
Re: Leerzeichen aus dem String löschen ?
hi,
und wo vergleichst du da? OO gruß Ansgar |
Re: Leerzeichen aus dem String löschen ?
Wo ist das Trim?
|
Re: Leerzeichen aus dem String löschen ?
Wenn ich mir den String ausgeben lasse : StatName=(c) 2007 by A&B ( Length = 25, also muss da noch was hinten dran sein)
Nach Trim / Trimright ist Length aber immer noch 25,also scheint es kein Leerzeichen zu sein.. |
Re: Leerzeichen aus dem String löschen ?
Zitat:
Delphi-Quellcode:
if SecList2.IndexOf(ident) > -1 then
|
Re: Leerzeichen aus dem String löschen ?
Zitat:
Schau dir mal beide Strings im Debugger an |
Re: Leerzeichen aus dem String löschen ?
Zitat:
|
Re: Leerzeichen aus dem String löschen ?
Breakpoint setzen und mit Maus über Varibale fahren bzw. zu überwachten Ausdrücken hinzufügen
|
Re: Leerzeichen aus dem String löschen ?
Zitat:
hmmm gestern war hier eine ähnliche Anfrage. Machst du
Delphi-Quellcode:
oder
Trim(Variable);
Delphi-Quellcode:
Sonst hab ich leider keine Idee mehr
Varaible := Trim(Variable);
gruß Ansgar |
Re: Leerzeichen aus dem String löschen ?
Trim(Variable) habe ich gemacht
|
Re: Leerzeichen aus dem String löschen ?
Du musst folgendes schreiben:
Delphi-Quellcode:
Siehe Delphi Hilfe:
Variable := Trim(Variable);
function Trim(const S: string): string; Viele Grüße Alex |
Re: Leerzeichen aus dem String löschen ?
Ich glaub es ja nicht. Das geht? So ne Kleinigkeit. Aber vielen Dank an alle. :hello:
|
Re: Leerzeichen aus dem String löschen ?
Trim entfernt auch Zeilenumbrüche (#13 und #10), sowie Tabs (#9)
Ist das "zusätzliche" Leerzeichen vielleicht mitten im String? Außerdem sollte der Debugger alle Zeichen anzeigen (Steuerzeichen werden da ja konvertiert) |
Re: Leerzeichen aus dem String löschen ?
Zitat:
[edit]Bitte nicht so ernst nehmen. Erklärung weiter unten. hüstel [/edit] |
Re: Leerzeichen aus dem String löschen ?
nicht?
ich dachte des war so :shock: (und ja, ich verwende 'ne eigene Lib) [add] hatte doch Recht <= ' ' entfernt Leerzeichen und alle Steuerzeichen im Bereich von #0 bis #32
Delphi-Quellcode:
function Trim(const S: string): string;
var I, L: Integer; begin L := Length(S); I := 1; while (I <= L) and (S[I] <= ' ') do Inc(I); if I > L then Result := '' else begin while S[L] <= ' ' do Dec(L); Result := Copy(S, I, L - I + 1); end; end; |
Re: Leerzeichen aus dem String löschen ?
'<=' war eben noch nicht in meiner SysUtils.Pas. :oops: Ehrlich nicht. Ich schwöre. Das ist grad eben erst dort erschienen.
Alter, ismir das peinlich. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:10 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