AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datei nummeriert speichern

Ein Thema von Dragon27 · begonnen am 25. Feb 2004 · letzter Beitrag vom 1. Mär 2004
Antwort Antwort
Seite 2 von 2     12   
Robert_G
(Gast)

n/a Beiträge
 
#11

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 11:19
Beim Speichern musst du einfach nur andersherum denken...
Für DupeString musst du die Unit StrUtils in die Uses-Clause aufnehmen.
Delphi-Quellcode:
Var
  flStrList : TStringList;
  DeinFileName : String;
  Zahl : Integer;
Begin
  If Not Savedialog1.Execute Then Exit;
  DeinFileName := Savedialog1.FileName;

  flStrList := TStringList.Create;

  Try
    flStrList.Assign(SynMemo1.Lines);
    Zahl := 0;
    While zahl < pred(flStrList.Count) Do
    Begin
      flStrList[Zahl] :=
        IntToStr(succ(Zahl)) +
        DupeString(#32, 7 - Length(IntToStr(succ(Zahl)))) +
        flStrList[Zahl];
      inc(Zahl);

    End;
    flStrList.SaveToFile(DeinFileName);
  Finally
    FreeAndNil(flStrList);
  End;
... wenn du den Text nicht unbeding perfekt eingerückt (hier 7 Stellen) brauchst, kannst du anstatt "DupeString..." auch ein #32 nehmen.
Nachtrag: Wenn du den Text ausrichtest, musst du beim Einlesen diesen Wert verwenden (anstatt "Pos(#32, flStrList[Zahl])")
-> sonst sieht man die ganzen Leerzeichen.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#12

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 11:25
Hi!

Probier mal, ob das geht:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: integer;
strlist: Tstringlist;
begin
i:=0;
strlist := TStringList.Create;

  Try
    StrList.Assign(Synmemo1.Lines);
    Synmemo1.Clear;
    While i <= pred(StrList.Count) Do
      begin
        synmemo1.Lines.Add(inttostr(i+1)+' '+Strlist[i]);
        i:=i+1;
      end;
  Finally
    FreeAndNil(StrList);
  end;
end;
Ich hoffe, dass der Code in Ordnung ist. Habe mich noch nicht so wirklich damit auseinandersetzen können. Falls Fehler drin sind, oder die Vorgehensweise nicht ok ist, sagt Bescheid.

Ciao fkerber

Edit:
a) zu langsam
b) @Robert_G: Ist mein Code in Ordnung, oder nicht empfehlenswert?
Frederic Kerber
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#13

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 11:33
Zitat:
.. wenn du den Text nicht unbeding perfekt eingerückt (hier 7 Stellen) brauchst, kannst du anstatt "DupeString..." auch ein #32 nehmen.
Nachtrag: Wenn du den Text ausrichtest, musst du beim Einlesen diesen Wert verwenden (anstatt "Pos(#32, flStrList[Zahl])")
-> sonst sieht man die ganzen Leerzeichen.
Ähm wie bitte? Was ist #32?? und Dupestring wo is der unterschied sorry aber hab sowas noch nie gemacht


in der Delphiholfe steht folgendes:

Zitat:
Die Funktion gibt die mehrfache Verkettung eines Strings mit sich selbst zurück. Die Anzahl der Wiederholungen kann angegeben werden.

Unit

StrUtils

Kategorie

String-Verarbeitung

Delphi-Syntax:

function DupeString(const AText: string; ACount: Integer): string;

C++ Syntax:

extern PACKAGE AnsiString __fastcall DupeString(const AnsiString AText, int ACount);

Beschreibung

DupeString gibt einen String zurück, der ACount Wiederholungen des Strings AText enthält. Ein Beispiel:

S := DupeString('Ha', 5);

Diese Anweisung gibt den String 'HaHaHaHaHa' zurück.
Danke

P.s.: Will ja nicht nur den code kopieren sondern ihn auch verstehen *g* was ja manche nicht so nehmen
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#14

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 11:50
DupeString('Hallo', n) wiederholt einen String ('Hallo') n-mal.

#32 ist der ASCII-Code für ein Leerzeichen, ich verwende selten ' ' in meinem Code(außer bei SQL-Statements), da man beim schnellen Durchscrollen nicht sofort sieht ob da nicht jemand einen Tab (#9) reingesetzt hat.

succ(Zahl) liefert den Nachfolger
pred(Zahl) -"- Vorgänger

inc(Zah) entspricht: Zahl := Zahl + 1;
dec(Zah) entspricht: Zahl := Zahl - 1;

Length(IntToStr(Zahl)) gibt dir die Länge von "Zahl"


DupeString(#32, 7 - Length(IntToStr(succ(Zahl)))) gibt dir deshalb: 7 - "Länge von Zahl" Leerzeichen.
Das meinte ich mit einrücken:
Im SynMemo:
Code:
CREATE OR REPLACE TRIGGER ctsdd.rule_change
before update or delete of object_id on ctsdd.rule
for each row
BEGIN

  IF updating THEN
    UPDATE ctsdd.extended_rule
in der Datei

Code:
15646  CREATE OR REPLACE TRIGGER ctsdd.rule_change
15647  before update or delete of object_id on ctsdd.rule
15648  for each row
15649  BEGIN
15650 
15651   IF updating THEN
15652     UPDATE ctsdd.extended_rule
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#15

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 12:02
hi, danke für die lange Erklärung nett von dir!

Eine Frage bleibt noch offen wie mache ich es dass er immer bei der Nummerierung mit 0 anfängt (dass ist ganz wichtig)!
hab da das schon so probiert:

Delphi-Quellcode:

Var
  flStrList : TStringList;
  DeinFileName : String;
  Zahl : Integer;
Begin
  If Not form1.Savedialog1.Execute Then Exit;
  DeinFileName := form1.Savedialog1.FileName;

  flStrList := TStringList.Create;

  Try
    flStrList.Assign(form1.SynMemo1.Lines);
    Zahl := -1;
    While zahl < pred(flStrList.Count) Do
    Begin
      inc(Zahl);
      flStrList[Zahl] :=
        IntToStr(succ(Zahl)) +
        DupeString(#32, 7 - Length(IntToStr(succ(Zahl)))) +
        flStrList[Zahl];


    End;
    flStrList.SaveToFile(DeinFileName);
  Finally
    FreeAndNil(flStrList);
  End;
aber er fängt trotzdem bei 1 an. Warum?

Danke
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#16

Re: Datei nummeriert speichern

  Alt 25. Feb 2004, 12:12
Hi!

Ich glaube, es müsste so heißen;

Delphi-Quellcode:
Try
    flStrList.Assign(form1.SynMemo1.Lines);
    Zahl := 0;
    While zahl < pred(flStrList.Count) Do
    Begin
      inc(Zahl);
      flStrList[Zahl] :=
        IntToStr(Zahl) + //<-- hier
        DupeString(#32, 7 - Length(IntToStr(succ(Zahl)))) +
        flStrList[Zahl];
ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#17

Re: Datei nummeriert speichern

  Alt 1. Mär 2004, 13:51
Zitat von Robert_G:
DupeString('Hallo', n) wiederholt einen String ('Hallo') n-mal.

#32 ist der ASCII-Code für ein Leerzeichen, ich verwende selten ' ' in meinem Code(außer bei SQL-Statements), da man beim schnellen Durchscrollen nicht sofort sieht ob da nicht jemand einen Tab (#9) reingesetzt hat.

succ(Zahl) liefert den Nachfolger
pred(Zahl) -"- Vorgänger

inc(Zah) entspricht: Zahl := Zahl + 1;
dec(Zah) entspricht: Zahl := Zahl - 1;

Length(IntToStr(Zahl)) gibt dir die Länge von "Zahl"


DupeString(#32, 7 - Length(IntToStr(succ(Zahl)))) gibt dir deshalb: 7 - "Länge von Zahl" Leerzeichen.
Das meinte ich mit einrücken:
Im SynMemo:
Code:
CREATE OR REPLACE TRIGGER ctsdd.rule_change
before update or delete of object_id on ctsdd.rule
for each row
BEGIN

  IF updating THEN
    UPDATE ctsdd.extended_rule
in der Datei

Code:
15646  CREATE OR REPLACE TRIGGER ctsdd.rule_change
15647  before update or delete of object_id on ctsdd.rule
15648  for each row
15649  BEGIN
15650 
15651   IF updating THEN
15652     UPDATE ctsdd.extended_rule

Hallo,

also hab jetzt mal a bisserl hin und her probiert und jetzt funzt diese Procedur oben schon recht gut nur sollten jetzt keine einrückungen mehr beachtet werden also aus dem:

Code:
15647  before update or delete of object_id on ctsdd.rule
15648  for each row
15649  BEGIN
15650 
15651   IF updating THEN
15652     UPDATE ctsdd.extended_rule
soll das werden:

Code:
15647  before update or delete of object_id on ctsdd.rule
15648  for each row
15649  BEGIN
15650 
15651  IF updating THEN
15652  UPDATE ctsdd.extended_rule
nun ist die frage, geht das mit diesem misteriösen "-7" oder wie soll ich das anfangem? Ich habe da echt null peil

Danke für eure Hilfe


Gruß

Andy
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:34 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