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
Phillip0405

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

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
 
#2

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
 
#3

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
 
#4

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
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, 15:35
Das klappt leider auch nicht.
Könntest Du das bitte präzisieren?
Da kommt dann eine Fehlermeldung mit dem Pfad und der ursprünglichen Rechnung, mehr steht da nicht drin.
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, 15:55
Das klappt leider auch nicht.
Könntest Du das bitte präzisieren?
Da kommt dann eine Fehlermeldung mit dem Pfad und der ursprünglichen Rechnung, mehr steht da nicht drin.
Was klappt nicht? - dein Sourcecode wäre echt hilfreich.
Fehlermeldungen enthalten meistens einen Hinweis auf das gefundene Problem, Fehlermeldungen die nur eine Pfadangabe enthalten sind doch recht selten.
(vielleich "File not found?")

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#7

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 2. Feb 2016, 15:56
Also, wie wäre es damit:
  1. Du postes mal den jetzt aktuellen, vollständigen Quelltext.
  2. Du benennst/markierst darin die Zeile, in der der Fehler auftritt.
  3. Du kopierst den Text der Fehlermeldung hier ins Forum.
Dann könnten wir eventuell die Möglichkeit haben, zwischen Fehlermeldung und Quelltext eine Verbindung herzustellen, um gezielt Hilfestellung geben zu können.

Die momentanen Informationen reichen nicht aus, um irgendwie hilfreich aggieren zu können.
  Mit Zitat antworten Zitat
Phillip0405

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

AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren

  Alt 3. Feb 2016, 07:31
Ich habe noch etwas geändert und es kommt keine Fehlermeldung mehr, aber es passiert auch nichts, außer das alles gelöscht wird aus der Ursprungsdatei.
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,
  Vcl.RibbonLunaStyleActnCtrls, Vcl.Ribbon;

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
      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-');
    end;
a:=MyIniFile.ReadString('Verzeichnis','Ziel','');
sl.SaveToFile(sfile);
MyIniFile.Free;
sl.Free;
end;

 function TForm5.Löschen(text:string;alt:string): string;
  var
  b,a :integer;
 begin
  while b>0 do begin
  b:=Pos(alt,text);
  a:=length(alt);

   text:=copy(text,b,a);
   Delete(text,b,a);
   b:=Pos(alt,text);
  end;
  result := Text;

end;
end.
P.B.

Geändert von Phillip0405 ( 3. Feb 2016 um 07:44 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:00 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