AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Delphi Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

Ein Thema von Phillip0405 · begonnen am 2. Feb 2016 · letzter Beitrag vom 3. Feb 2016
Antwort Antwort
Seite 1 von 2  1 2      
Phillip0405

Registriert seit: 25. Jan 2016
Ort: NRW
24 Beiträge
 
Delphi XE3 Professional
 
#1

Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 14:03
Hallo zusammen,
ich wollte ein Programm programmieren, dass eine Rechnung mit Sonderzeichen in eine Rechnung ohne Sonderzeichen konvertiert.
Delphi-Quellcode:
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.
Nur bleibt die Rechnung so wie sie war. Was ist falsch?
Danke im Voraus!
P.B.
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#2

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 14:06
Na, weil Du den Dateinamen und nicht den gelesenen Inhalt bearbeitest...
  Mit Zitat antworten Zitat
Phillip0405

Registriert seit: 25. Jan 2016
Ort: NRW
24 Beiträge
 
Delphi XE3 Professional
 
#3

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 14:07
Na, weil Du den Dateinamen und nicht den gelesenen Inhalt bearbeitest...
Wie kann ich es ändern?
P.B.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 14:09
sFile ist doch der Dateiname, wenn Du den änderst, ändert sich nicht der Inhalt der Datei.

Delphi-Quellcode:
  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;
könnte das Problem lösen helfen
  Mit Zitat antworten Zitat
Phillip0405

Registriert seit: 25. Jan 2016
Ort: NRW
24 Beiträge
 
Delphi XE3 Professional
 
#5

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 14:14
sFile ist doch der Dateiname, wenn Du den änderst, ändert sich nicht der Inhalt der Datei.

Delphi-Quellcode:
  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;
könnte das Problem lösen helfen
Wie kann ich es ändern, dass der Text, der sich hinter der Datei des Pfades verbirgt, sich ändert?
Aber schon mal danke
P.B.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 14:23
Delphi-Quellcode:
   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-');
  ;
wäre eine weitere Möglichkeit.

Gruß
K-H

P.S.
Wie kann ich es ändern, dass der Text, der sich hinter der Datei des Pfades verbirgt, sich ändert?
Könntest Du bitte noch einmal erklären um was es Dir geht?
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 ( 2. Feb 2016 um 14:26 Uhr) Grund: edit
  Mit Zitat antworten Zitat
Phillip0405

Registriert seit: 25. Jan 2016
Ort: NRW
24 Beiträge
 
Delphi XE3 Professional
 
#7

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 14:38
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.
Delphi-Quellcode:
   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-');
  ;
Das sorgt dafür, dass alles entfernt wird aus der Datei.
P.B.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 14:57
Dann schau Dir doch mal Deine Löschroutine an und analysiere, was sie macht:
Delphi-Quellcode:
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;
Um Fehler in 'ner eigenen Routine zu vermeiden, würd' ich mich auf vorhandene Routinen von Delphi verlassen:
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-','');
  Mit Zitat antworten Zitat
Phillip0405

Registriert seit: 25. Jan 2016
Ort: NRW
24 Beiträge
 
Delphi XE3 Professional
 
#9

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 15:28
Dann schau Dir doch mal Deine Löschroutine an und analysiere, was sie macht:
Delphi-Quellcode:
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;
Um Fehler in 'ner eigenen Routine zu vermeiden, würd' ich mich auf vorhandene Routinen von Delphi verlassen:
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-','');
Das klappt leider auch nicht.
P.B.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 15:30
Das klappt leider auch nicht.
Könntest Du das bitte präzisieren?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:40 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