Zurück zu JPG-Verkleinern.
Delphi Code von Linux-Text-Dateien in Windows-Text-Dateien umformatieren
Ein kleiner Einblick in Text bearbeitung mit Delphi.
Wer Fehler findet kann die behalten!
//---------------------------------------------------------------------------------------------
unit EndLinuxerU1;
{ Ich über nehme keine Verantwortung, alles auf eigenes Risiko.
Der Code darf frei benutzt werden und verbessert und geändert.
Bei Commercialer Nutzung hat man mich zu fragen.
}
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, ComCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
Datei1: TMenuItem;
ffnen1: TMenuItem;
Speichern1: TMenuItem;
Speichernunter1: TMenuItem;
Dateischlieen1: TMenuItem;
Beenden1: TMenuItem;
Bearbeiten1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
ReplaceDialog1: TReplaceDialog;
FindDialog1: TFindDialog;
LinuxZeicheEntfernen1: TMenuItem;
RichEdit1: TRichEdit;
procedure ffnen1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure LinuxZeicheEntfernen1Click(Sender: TObject);
procedure Speichern1Click(Sender: TObject);
procedure Speichernunter1Click(Sender: TObject);
procedure Dateischlieen1Click(Sender: TObject);
procedure Beenden1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Dateiname, PfadAssembler: String;
Starten, Auswahl: Boolean;
implementation
{$R *.DFM}
procedure TForm1.ffnen1Click(Sender: TObject);
var F: TextFile;
S, sNeu: string;
i, max, L: Integer;
Vorhanden: Boolean;
sz : Char;
begin
//Fahls bei Öffnen RichEdit1 nicht den Focus hat sonst(Fehler)
RichEdit1.SetFocus;
sNeu := '';
max := 0;
L := 0;
Vorhanden := True;
try
if OpenDialog1.Execute then begin
Dateiname := OpenDialog1.FileName;
RichEdit1.Clear;
Caption := ExtractFileName(Dateiname);
AssignFile(F, Dateiname); // Datei ausgewählt
Reset(F); // Datei öffnen
while not Eof(F) do
begin
Readln(F, S); // Zeilen weise aus der Datei lesen
max := Length(s);
for i := 1 to max do begin // Zeile durchsuchen
if s[i] = #10 then
Vorhanden := False
else
sNeu := sNeu + s[i];
// if s[i] = #10 then begin // nach Linux Return
if Vorhanden = False then begin
if Length(sNeu)= 0 then // Wenn mehrere #10 hinter einander
RichEdit1.Lines.Add(sNeu)
else begin // if Length(sNeu)
if sNeu[Length(sNeu)] = ':' then // Für Sprung Marken
RichEdit1.Lines.Add(sNeu)
else begin
if sNeu[1] = ';' then // Für Kommentare am Anfang
RichEdit1.Lines.Add(sNeu)
else begin
sNeu := ' ' + sNeu ; // u. 15 Leerzeichen am Anfang
RichEdit1.Lines.Add(sNeu);
end; // else sNeu[1]
end; // else sNeu[Length
end; // else Length(sNeu)
sNeu := '';
Vorhanden := True;
end; // Vorhanden
end; // for i
end; // while
CloseFile(F);
end;
except
MessageBox(0,'Datei fehlerhaft','Problem',16);
end;
RichEdit1.SetFocus;
RichEdit1.Modified := False;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Dateiname := '';
end;
procedure TForm1.LinuxZeicheEntfernen1Click(Sender: TObject);
var S, sNeu: string;
i, max, L: Integer;
Vorhanden: Boolean;
begin
//Fahls bei Öffnen RichEdit1 nicht den Focus hat sonst(Fehler)
RichEdit1.SetFocus;
sNeu := '';
max := 0;
L := 0;
Vorhanden := False;
{
while not Eof(F) do
begin
Readln(F, S); // Zeilen weise aus der Datei lesen
max := Length(s);
for i := 1 to max do begin // Zeile durchsuchen
sNeu := sNeu + s[i];
if s[i] = #10 then begin // nach Linux Return
if Vorhanden = False then begin
sNeu := ' ' + sNeu ; // u. 15 Leerzeichen am Anfang
RichEdit1.Lines.Add(sNeu);
sNeu := '';
Vorhanden := True;
end;
end
else
Vorhanden := False;
end; // for i
end; // while
}
end;
procedure TForm1.Speichern1Click(Sender: TObject);
begin
RichEdit1.PlainText := True;
If FileExists(Dateiname) then begin
try
RichEdit1.Lines.SaveToFile(Dateiname);
except
MessageBox(0,'Datei fehlerhaft','Problem',16);
end;
RichEdit1.Modified := False;
end // If FileExists
else
Speichernunter1Click(Sender);
end;
// Speichern unter
procedure TForm1.Speichernunter1Click(Sender: TObject);
Var DateiEndung, Name, s, sNeu: String;
L, i, max: Integer;
F: TextFile;
begin
RichEdit1.PlainText := True;
SaveDialog1.InitialDir := Dateiname;
SaveDialog1.FileName := ExtractFileName(Dateiname);
if SaveDialog1.Execute then
begin
Dateiname := SaveDialog1.FileName;
Caption := ExtractFileName(Dateiname);
RichEdit1.Lines.SaveToFile(Dateiname);
end;
// RichEdit1.Lines.SaveToFile(Dateiname); // Erst Speichern
RichEdit1.Modified := False;
end;
procedure TForm1.Dateischlieen1Click(Sender: TObject);
var Antwort: Integer;
begin
Antwort := 0;
// Ist Kein Text in RichEdit dann ohne Abfrage ob Text geändert wurde Schließen
If Length(RichEdit1.Text) = 0 then
RichEdit1.Modified := False
else
// Modified = Abfrage ob Text geändert wurde
if RichEdit1.Modified then
Antwort := Application.MessageBox('Wollen Sie die eingabe Speichern?',
'Frage zum Speichern', 3+32);
// Antwort nimt den Integer Wert des Schalter auf zb. mrNo = 6
if Antwort = mrYes Then begin
Speichern1Click(Sender);
RichEdit1.Clear;
end;
// Schliessen erlaubt
if Antwort = mrNo Then RichEdit1.Clear;
end;
procedure TForm1.Beenden1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var Antwort: Integer;
begin
Antwort := 0;
// Ist Kein Text in RichEdit dann ohne Abfrage ob Text geändert wurde Schließen
If Length(RichEdit1.Text) = 0 then begin
RichEdit1.Modified := False;
end
else
// Modified = Abfrage ob Text geändert wurde =gibt einen Boolean Wert zurück
if RichEdit1.Modified then
Antwort := Application.MessageBox('Wollen Sie die eingabe Speichern?',
'Frage zum Speichern', 3+32);
// Antwort nimt den Integer Wert des Schalter auf zb. mrNo = 6
if Antwort = mrYes Then begin
Speichern1Click(Sender);
end;
// Datei Schließt vorgang wird Abgebrochen
if Antwort = mrCancel then CanClose := False;
// Schliessen erlaubt
if Antwort = mrNo Then CanClose := True;
end;
end.
//------------------------------------------------------------------------------------------------