![]() |
Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
Hallo zusammen,
ich wollte ein Programm programmieren, dass eine Rechnung mit Sonderzeichen in eine Rechnung ohne Sonderzeichen konvertiert.
Delphi-Quellcode:
Nur bleibt die Rechnung so wie sie war. Was ist falsch?
unit Unit5;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Inifiles; type TForm5 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); function Löschen(text:string;alt:string): string; private { Private-Deklarationen } public { Public-Deklarationen } end; var Form5: TForm5; implementation {$R *.dfm} procedure TForm5.Button1Click(Sender: TObject); var sl:tstringlist; MyInifile: TInifile; sFile,a,test:string; i:integer; begin MyIniFile:= TInifile.Create('C:\Users\Praktikant\Desktop\Phillip Beermann, Praktikant\`Rechnung´\MyConfig.ini'); sFile:= MyIniFile.ReadString('Verzeichnis','Quelle','Irgendetwas ist falsch!'); sl:=tstringlist.Create; sl.LoadFromFile(sfile); for i:= 0 to sl.Count -1 do begin sfile:=Löschen(sFile,'\A+'); sfile:=Löschen(sFile,'\A-'); sfile:=Löschen(sFile,'\S+'); sfile:=Löschen(sFile,'\S-'); sfile:=Löschen(sFile,'\U+'); sfile:=Löschen(sFile,'\U-'); end; a:=MyIniFile.ReadString('Verzeichnis','Ziel',''); sl.SaveToFile(a); MyIniFile.Free; sl.Free; end; function TForm5.Löschen(text:string;alt:string): string; var b,a :integer; begin b:=Pos(alt,text); a:=length(alt); while b>0 do begin text:=copy(text,b,a); Delete(text,b,a); b:=Pos(alt,text); end; result := Text; end; end. Danke im Voraus!:thumb: |
AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
Na, weil Du den Dateinamen und nicht den gelesenen Inhalt bearbeitest...
|
AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
Zitat:
|
AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
sFile ist doch der Dateiname, wenn Du den änderst, ändert sich nicht der Inhalt der Datei.
Delphi-Quellcode:
könnte das Problem lösen helfen ;-)
for i:= 0 to sl.Count -1 do begin
sl[i]:=Löschen(sl[i],'\A+'); sl[i]:=Löschen(sl[i],'\A-'); sl[i]:=Löschen(sl[i],'\S+'); sl[i]:=Löschen(sl[i],'\S-'); sl[i]:=Löschen(sl[i],'\U+'); sl[i]:=Löschen(sl[i],'\U-'); end; |
AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
Zitat:
Aber schon mal danke ;-) |
AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
Delphi-Quellcode:
wäre eine weitere Möglichkeit.
sl.Text:=Löschen(sl.Text,'\A+');
sl.Text:=Löschen(sl.Text,'\A-'); sl.Text:=Löschen(sl.Text,'\S+'); sl.Text:=Löschen(sl.Text,'\S-'); sl.Text:=Löschen(sl.Text,'\U+'); sl.text:=Löschen(sl.Text,'\U-'); ; Gruß K-H P.S. Zitat:
|
AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
Ich habe eine Rechnung. Diese Rechnung hat bestimmte Zeichen (\A+ \A- \S+ \S- \U+ \U- )die entfernt werden sollen. Dieses soll durch eine ini-Datei "gesteuert" werden.
Zitat:
|
AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
Dann schau Dir doch mal Deine Löschroutine an und analysiere, was sie macht:
Delphi-Quellcode:
Um Fehler in 'ner eigenen Routine zu vermeiden, würd' ich mich auf vorhandene Routinen von Delphi verlassen:
function TForm5.Löschen(text:string;alt:string): string;
var b,a :integer; begin b:=Pos(alt,text); // Wo ist die zu löschende Zeichenfolge? a:=length(alt); // und wie lang ist sie? while b>0 do begin // Ist sie überhaupt vorhanden? text:=copy(text,b,a); // Text ist alles, ab der Fundstelle, alles was davor ist, geht "verloren". Delete(text,b,a); // Im Rest löschen wir jetzt ab der Position im Ursprung soviel Zeichen, wie die Zeichenfolge lang ist. Allerdings hat sich die Postition durch das Entfernen des Anfangs verschoben. Hier löschen wird also irgendwo irgendwas. b:=Pos(alt,text); // Position der Zeichenfolge im Rest suchen. end; result := Text; // Wenn denn was übrigbleiben sollte, geben wir das zurück. end;
Delphi-Quellcode:
sl.Text := AnsiReplaceText(sl.Text,'\A+','');
sl.Text := AnsiReplaceText(sl.Text,'\A-',''); sl.Text := AnsiReplaceText(sl.Text,'\S+',''); sl.Text := AnsiReplaceText(sl.Text,'\S-',''); sl.Text := AnsiReplaceText(sl.Text,'\U+',''); sl.Text := AnsiReplaceText(sl.Text,'\U-',''); |
AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
Zitat:
|
AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 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