Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Text edit algorithmus konzept... Zeichen finden :) (https://www.delphipraxis.net/157152-text-edit-algorithmus-konzept-zeichen-finden.html)

hedie 31. Dez 2010 15:27

Text edit algorithmus konzept... Zeichen finden :)
 
Hallo Zusammen...

Ich habe folgendes Problem
Bei einem G-Code (Code zur Steuerung von CNC Maschinen) muss vor einer solchen Zeile
Code:
N160 G0 X15.261 Y15.899
Die Zeichen M5 eingefügt werden und nach dieser Zeile M3

Dabei kann Die Nummer vor dem G0 und alles danach Variieren...

Wie geht man hier am besten vor?

Besten Dank und frohes neujahr :)

Helmi 31. Dez 2010 15:29

AW: Text edit algorithmus konzept... Zeichen finden :)
 
[OT]Ich würd die Spindel weiterlaufen lassen :-)[/OT]

s.h.a.r.k 31. Dez 2010 15:36

AW: Text edit algorithmus konzept... Zeichen finden :)
 
Ein Edit mit mehreren Zeilen gibt so es nicht. Es ist halt dann ein Memo :)

Zudem verstehe ich das eigentliche Problem nicht wirklich :gruebel: Reguläre Ausdrücke wären hier vielleicht ganz praktisch.

Björn Ole 31. Dez 2010 15:37

AW: Text edit algorithmus konzept... Zeichen finden :)
 
Delphi-Quellcode:
if Pos('G0', Zeile) > 0 then
  Zeile := Format('M5 %s M3', [Zeile]);
Sollte die Ziffer nach dem G auch variabel sein, zusätzlich darauf prüfen.
Delphi-Quellcode:
p := Pos('G', Zeile);
if (p > 0) and (Length(Zeile) > p) and (CharInSet(Zeile[p+1], ['0'..'9'])) then
  Zeile := Format('M5 %s M3', [Zeile]);

idefix2 31. Dez 2010 15:37

AW: Text edit algorithmus konzept... Zeichen finden :)
 
Am bequemsten erkennst Du solche Zeilen wahrscheinlich mit regulären Ausdrücken.

BUG 31. Dez 2010 15:40

AW: Text edit algorithmus konzept... Zeichen finden :)
 
zB:
Code:
^N[0-9]+ G0 .*$

Helmi 31. Dez 2010 15:40

AW: Text edit algorithmus konzept... Zeichen finden :)
 
Zitat:

Zitat von Björn Ole (Beitrag 1071485)
Delphi-Quellcode:
if Pos('G0', Zeile) > 0 then
  Zeile := Format('M5 %s M3', [Zeile]);

Bei NC-Programmen muss es so lauten:
Delphi-Quellcode:
if Pos('G0', Zeile) > 0 then
  Zeile := Format('M5 %s' + #13#10 + 'M3', [Zeile]);
Da M5 und M3 nicht in einer Zeile stehen dürfen.
(Dürfen schon, aber dann wäre die Funktion weg)

Wobei man sagen muss, wenn jetzt jemand nen Vorschub programmiert, dann kann
es mit dem Code in die Hose gehen (G01 oder G1)

Björn Ole 31. Dez 2010 15:43

AW: Text edit algorithmus konzept... Zeichen finden :)
 
Okay, dann kommt man da mit regulären Ausdrücken natürlich einfacher voran.

hedie 31. Dez 2010 15:59

AW: Text edit algorithmus konzept... Zeichen finden :)
 
Vielen Dank für die vielen und blitzschnellen Antworten...

Hat soweit geklappt... Jetzt noch eine Frage..

Wie kann man in einem Memo eine neue Zeile zwischen zwei existierenden hinzufügen?

rollstuhlfahrer 31. Dez 2010 16:01

AW: Text edit algorithmus konzept... Zeichen finden :)
 
Delphi-Quellcode:
Memo1.Lines.Insert(1, 'Inhalt');
Bernhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr.
Seite 1 von 2  1 2      

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