![]() |
Erstes bestimmtes Zeichen abschneiden
Tach
Hab da mal folgendes Problem. Ich übergebe ein String an ein Label, der String ist öfter durch ein Komma getrennt. Jetzt habe das Proble das ich immer an erster Stelle ein Komma habe das wurde ich gerne weg haben. Hab es Schon mit Pos() / Copy() versucht da wird ja nur Kopiert ist nicht das richtige. Auch mit Delete ist auch nicht das richtige weil ich das im onChange ereignis habe und wenn ich das öfter aufrufe ist irgendwann der ganze String weg. Ich brüchte ne Lösung wo geprüft wird ob das erste Zeiche ein "," ist und das gelöscht wird. Gruß Sascha |
Re: Estes bestimmtes Zeichen abschneiden
Delphi-Quellcode:
if (Length(s) > 0) and (s[1] = ',') then Delete(s,1,1);
|
Re: Estes bestimmtes Zeichen abschneiden
Hi!
Wieso geht das nicht mit Pos()? Du könntest aber auch das erste Zeichen mit DeinString[1] prüfen, wenn es ein Komma ist, dann lösche das Zeichen oder kopiere den Rest in einen anderen String und übergebe ihn an das Label, wenn es kein Komma ist übergibts du den String direkt ans Label. Edit: Zu langsam... :-D |
Re: Estes bestimmtes Zeichen abschneiden
Oder mit
![]() |
Re: Estes bestimmtes Zeichen abschneiden
Das geht auch nicht so ganz vielleicht wäre einer von euch mal sonet und würde da drüber schauen ich find den Fehler nicht.
Da hängt ja noch einiges mehr dran.
Delphi-Quellcode:
procedure TForm7.Edit1Change(Sender: TObject);
var sAnKollegeEdit,sAnKollegeEditFertig : String; iEditposition :Integer; begin sAnKollegeEdit:= Edit1.Text; if (Length(sAnKollegeEdit) > 0) and (sAnKollegeEdit[1] = ',') then Delete(sAnKollegeEdit,1,1); Label1.Caption:= sAnKollegeEdit; end; function ColsToStr(sg: TStringGrid; colNums: array of Integer): string; var iCol, iRow: Integer; s: string; begin with TStringList.Create do try Sorted := True; for iCol := Low(colNums) to High(colNums) do for iRow := sg.FixedRows to Pred(sg.RowCount) do begin s:= Trim(sg.Cols[colNums[iCol]][iRow]); if (s <> '') and (IndexOf(s) < 0) then Add(s); end; Result := CommaText; finally Free; end; end; procedure TForm7.StringGrid1EditorLeave(Sender: TObject; ACol, ARow: Integer); Var sTemp: String; slTemp: TStringlist; Begin //Wenn eine der beiden Spalten verlassen wird, dann holen wir und erstmal die kommaseparierten Values dieser beiden Spalten If (ACol = 11) Or (ACol = 12) Then Begin sTemp := ColsToStr(StringGrid1, [11, 12]); //Anführungsstriche entfernen sTemp := StringReplace(sTemp, #34, '', [rfReplaceAll]); sTemp:= sTemp + ',' + Edit1.Text; //daraus müssen nun noch doppelte Einträge entfernt werden slTemp := TStringList.Create; Try slTemp.Sorted := True; slTemp.Duplicates := dupIgnore; slTemp.CommaText := sTemp; //Dem Edit den Kommatext zuweisen Edit1.Text := slTemp.CommaText; Finally slTemp.Free; End; End; End; |
Re: Estes bestimmtes Zeichen abschneiden
Hi,
kann es sein, dass das mit dem Komma nur passiert, wenn in den Spalten 11 und 12 nix drin ist ? ich würde die Zeile
Delphi-Quellcode:
ändern auf
sTemp := sTemp + ',' + Edit1.Text;
Delphi-Quellcode:
Gruss
if sTemp = '' then
sTemp := Edit1.Text else sTemp := sTemp + ',' + Edit1.Text; |
Re: Estes bestimmtes Zeichen abschneiden
was wird denn angezeigt?
|
Re: Estes bestimmtes Zeichen abschneiden
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:37 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