GPIO Eingang bei langer Leitung schuetzen...

On 13 May 20 at group /de/sci/electronics in article 89rtog-1h5.ln1@criseis.ruhr.de
<olaf@criseis.ruhr.de> (olaf) wrote:

Wolfgang Allinger <all2001@spambog.com> wrote:

Auch Japaner können sich mit Chinesen schriftlich unterhalten. Geht
problemlos, sagte man mir.

Nein. Das geht, nach Aussage meiner Freundin (Japanerin) nur so
holprig. Die koennen den Sinn erfassen, aber schoen ist anders.
Versuch du mal Norwegisch zu lesen. Das ist vermutlich so aehnlich.

Und Schreibmaschinen hatten (haben) einige paarunzig Hundert x-fach
belegte Tasten. WIMRE 300 Tasten... mindigens 4fach belegt.

Noe. Die schreiben in Katakana oder Hiragana, also einer
Silbenschrift. Sobald man dann ein bisschen was geschrieben hat wird
es durch ein Kanji ersetzt. Oft gibt es auch mehrere Lesarten. Dann
geht ein kleines Fenster auf aus dem man auswaehlen muss. Ist lustig
anzusehen.

Ich schrub von mechanischen Kanji Schreibmaschinen, die ich 1984? in Japan
bewundern durfte. Die Mädels tippten mit ca. 1 Anschlag/sec. Aber da ein
Wort einem ca. 10 europäisches Zeichenäquivalent oder so entspricht,
kommen die also ähnlich schnell voran, wie europäische Typistinnen...
Und lustig anzusehen wars auch :)

Heutzutage sieht das mit Compustern ganz sicher anders aus und so wie Du
das beschreibst.

Die Schriftzeichen für senkrechtes Lächeln hab ich mir nicht merken
können, aber den Begriff :)





Saludos (an alle Vernünftigen, Rest sh. sig)
Wolfgang

--
Ich bin in Paraguay lebender Trollallergiker :) reply Adresse gesetzt!
Ich diskutiere zukünftig weniger mit Idioten, denn sie ziehen mich auf
ihr Niveau herunter und schlagen mich dort mit ihrer Erfahrung! :p
(lt. alter usenet Weisheit) iPod, iPhone, iPad, iTunes, iRak, iDiot
 
On 05/14/2020 13:31, Hartmut Kraus wrote:
Am 14.05.20 um 13:08 schrieb Helmut Schellong:
On 05/14/2020 12:06, Axel Berger wrote:
Hartmut Kraus wrote:
Mit Regexen kenne ich mich gar nicht aus. ;)

Mit denen habe ich auch lange gefremdelt. Irgendwann kam ich nicht mehr
dran vorbei und seitdem mag ich nie wieder ohne.

Ja, ich bin ein ausgesprochener RegEx-Fan.
Man kann damit seine Produktivität vervielfachen!
Besonders mit Suchen&Ersetzen.

Naja, das kann meine IDE auch.

Mit oder ohne RegExp zu formulieren?

Manche IDE bieten RegExp an - aber seltener.
Ohne RegExp ist der Nutzen sehr eingeschränkt.


--
Mit freundlichen Grüßen
Helmut Schellong var@schellong.biz
www.schellong.de www.schellong.com www.schellong.biz
http://www.schellong.de/c.htm
http://www.schellong.de/htm/audio_proj.htm
http://www.schellong.de/htm/audio_unsinn.htm
 
On 05/14/2020 13:31, Hartmut Kraus wrote:
Am 14.05.20 um 13:08 schrieb Helmut Schellong:
On 05/14/2020 12:06, Axel Berger wrote:
Hartmut Kraus wrote:
Mit Regexen kenne ich mich gar nicht aus. ;)

Mit denen habe ich auch lange gefremdelt. Irgendwann kam ich nicht mehr
dran vorbei und seitdem mag ich nie wieder ohne.

Ja, ich bin ein ausgesprochener RegEx-Fan.
Man kann damit seine Produktivität vervielfachen!
Besonders mit Suchen&Ersetzen.

Naja, das kann meine IDE auch.

Mit oder ohne RegExp zu formulieren?

Manche IDE bieten RegExp an - aber seltener.
Ohne RegExp ist der Nutzen sehr eingeschränkt.


--
Mit freundlichen Grüßen
Helmut Schellong var@schellong.biz
www.schellong.de www.schellong.com www.schellong.biz
http://www.schellong.de/c.htm
http://www.schellong.de/htm/audio_proj.htm
http://www.schellong.de/htm/audio_unsinn.htm
 
Reinhard Zwirner schrieb:

Hi,

letztendlich ist es der Click-Torque A 5 von Wera geworden.

Allen Hinweisgebern dankt
freundlich grüßend

\"Ingrid\"
 
Reinhard Zwirner schrieb:

Hi,

letztendlich ist es der Click-Torque A 5 von Wera geworden.

Allen Hinweisgebern dankt
freundlich grüßend

\"Ingrid\"
 
Am 14.05.20 um 13:51 schrieb Helmut Schellong:
On 05/14/2020 13:31, Hartmut Kraus wrote:
Am 14.05.20 um 13:08 schrieb Helmut Schellong:
On 05/14/2020 12:06, Axel Berger wrote:
Hartmut Kraus wrote:
Mit Regexen kenne ich mich gar nicht aus. ;)

Mit denen habe ich auch lange gefremdelt. Irgendwann kam ich nicht mehr
dran vorbei und seitdem mag ich nie wieder ohne.

Ja, ich bin ein ausgesprochener RegEx-Fan.
Man kann damit seine Produktivität vervielfachen!
Besonders mit Suchen&Ersetzen.

Naja, das kann meine IDE auch.

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

http://hkraus.eu/se.png

Überhaupt ein cooles Tool (NetBeans). Nervt mich höchstens, wenn ich
erst mal \"in Unreine\" tippen will und es z.B. aus \" automatisch \"\" macht ...
 
Am 14.05.20 um 13:51 schrieb Helmut Schellong:
On 05/14/2020 13:31, Hartmut Kraus wrote:
Am 14.05.20 um 13:08 schrieb Helmut Schellong:
On 05/14/2020 12:06, Axel Berger wrote:
Hartmut Kraus wrote:
Mit Regexen kenne ich mich gar nicht aus. ;)

Mit denen habe ich auch lange gefremdelt. Irgendwann kam ich nicht mehr
dran vorbei und seitdem mag ich nie wieder ohne.

Ja, ich bin ein ausgesprochener RegEx-Fan.
Man kann damit seine Produktivität vervielfachen!
Besonders mit Suchen&Ersetzen.

Naja, das kann meine IDE auch.

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

http://hkraus.eu/se.png

Überhaupt ein cooles Tool (NetBeans). Nervt mich höchstens, wenn ich
erst mal \"in Unreine\" tippen will und es z.B. aus \" automatisch \"\" macht ...
 
On 05/14/2020 14:12, Hartmut Kraus wrote:
Am 14.05.20 um 13:51 schrieb Helmut Schellong:
On 05/14/2020 13:31, Hartmut Kraus wrote:
Am 14.05.20 um 13:08 schrieb Helmut Schellong:
On 05/14/2020 12:06, Axel Berger wrote:
Hartmut Kraus wrote:
Mit Regexen kenne ich mich gar nicht aus. ;)

Mit denen habe ich auch lange gefremdelt. Irgendwann kam ich nicht mehr
dran vorbei und seitdem mag ich nie wieder ohne.

Ja, ich bin ein ausgesprochener RegEx-Fan.
Man kann damit seine Produktivität vervielfachen!
Besonders mit Suchen&Ersetzen.

Naja, das kann meine IDE auch.

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

:120,$g/rot/s/[ ^I]\\+$//

Alle TABs und Spaces an den Zeilenenden entfernen,
in den Zeilen 120 bis Dateiende, in denen \'rot\' vorkommt.

/\\(.\\+\\) \\+\\1

Suchen nach zwei genau gleichen Zeichenketten, zwischen denen
mindestens 1 Leerzeichen steht:

<html lang
details details
it to
\" \"
// /Po
in nc
Edge gesondert
var arrNode
var rahmen


<!DOCT200YPE HTML>

In Deinen Dateien steht Vorstehendes.
Dies ist ein Fehler.
Man soll heutzutage unbedingt <!DOCTYPE HTML> verwenden.


--
Mit freundlichen Grüßen
Helmut Schellong var@schellong.biz
www.schellong.de www.schellong.com www.schellong.biz
http://www.schellong.de/c.htm
http://www.schellong.de/htm/audio_proj.htm
http://www.schellong.de/htm/audio_unsinn.htm
 
On 05/14/2020 14:12, Hartmut Kraus wrote:
Am 14.05.20 um 13:51 schrieb Helmut Schellong:
On 05/14/2020 13:31, Hartmut Kraus wrote:
Am 14.05.20 um 13:08 schrieb Helmut Schellong:
On 05/14/2020 12:06, Axel Berger wrote:
Hartmut Kraus wrote:
Mit Regexen kenne ich mich gar nicht aus. ;)

Mit denen habe ich auch lange gefremdelt. Irgendwann kam ich nicht mehr
dran vorbei und seitdem mag ich nie wieder ohne.

Ja, ich bin ein ausgesprochener RegEx-Fan.
Man kann damit seine Produktivität vervielfachen!
Besonders mit Suchen&Ersetzen.

Naja, das kann meine IDE auch.

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

:120,$g/rot/s/[ ^I]\\+$//

Alle TABs und Spaces an den Zeilenenden entfernen,
in den Zeilen 120 bis Dateiende, in denen \'rot\' vorkommt.

/\\(.\\+\\) \\+\\1

Suchen nach zwei genau gleichen Zeichenketten, zwischen denen
mindestens 1 Leerzeichen steht:

<html lang
details details
it to
\" \"
// /Po
in nc
Edge gesondert
var arrNode
var rahmen


<!DOCT200YPE HTML>

In Deinen Dateien steht Vorstehendes.
Dies ist ein Fehler.
Man soll heutzutage unbedingt <!DOCTYPE HTML> verwenden.


--
Mit freundlichen Grüßen
Helmut Schellong var@schellong.biz
www.schellong.de www.schellong.com www.schellong.biz
http://www.schellong.de/c.htm
http://www.schellong.de/htm/audio_proj.htm
http://www.schellong.de/htm/audio_unsinn.htm
 
Am 14.05.20 um 15:10 schrieb Helmut Schellong:
On 05/14/2020 14:12, Hartmut Kraus wrote:
Am 14.05.20 um 13:51 schrieb Helmut Schellong:
On 05/14/2020 13:31, Hartmut Kraus wrote:
Am 14.05.20 um 13:08 schrieb Helmut Schellong:
On 05/14/2020 12:06, Axel Berger wrote:
Hartmut Kraus wrote:
Mit Regexen kenne ich mich gar nicht aus. ;)

Mit denen habe ich auch lange gefremdelt. Irgendwann kam ich nicht
mehr
dran vorbei und seitdem mag ich nie wieder ohne.

Ja, ich bin ein ausgesprochener RegEx-Fan.
Man kann damit seine Produktivität vervielfachen!
Besonders mit Suchen&Ersetzen.

Naja, das kann meine IDE auch.

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

:120,$g/rot/s/[ ^I]\\+$//

Alle TABs und Spaces an den Zeilenenden entfernen,
in den Zeilen 120 bis Dateiende, in denen \'rot\' vorkommt.

/\\(.\\+\\) \\+\\1

Suchen nach zwei genau gleichen Zeichenketten, zwischen denen
mindestens 1 Leerzeichen steht:

html lang
details details
it to
\" \"
// /Po
in nc
Edge gesondert
var arrNode
var rahmen

Falsch. ;) Außerdem ziemlich sinnfrei.

Übrigens hab\' ich mit pluma \"aufgeräumt\" (Suche nach \"\\t\" für Tabulator)
- nicht ganz so kryptisch und fehleranfällig. ;)

!DOCT200YPE HTML

In Deinen Dateien steht Vorstehendes.
Dies ist ein Fehler.
Man soll heutzutage unbedingt <!DOCTYPE HTML> verwenden.

Stimmt auffallend. Weiß\' auch nicht, wie das da \'reingeraten ist. Man
soll eben keiner Quellre blind vertrauen. Aber wohl auch keienem HTML -
Validator, der hat das auch nicht gemerkt. ;)
 
Am 14.05.20 um 15:10 schrieb Helmut Schellong:
On 05/14/2020 14:12, Hartmut Kraus wrote:
Am 14.05.20 um 13:51 schrieb Helmut Schellong:
On 05/14/2020 13:31, Hartmut Kraus wrote:
Am 14.05.20 um 13:08 schrieb Helmut Schellong:
On 05/14/2020 12:06, Axel Berger wrote:
Hartmut Kraus wrote:
Mit Regexen kenne ich mich gar nicht aus. ;)

Mit denen habe ich auch lange gefremdelt. Irgendwann kam ich nicht
mehr
dran vorbei und seitdem mag ich nie wieder ohne.

Ja, ich bin ein ausgesprochener RegEx-Fan.
Man kann damit seine Produktivität vervielfachen!
Besonders mit Suchen&Ersetzen.

Naja, das kann meine IDE auch.

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

:120,$g/rot/s/[ ^I]\\+$//

Alle TABs und Spaces an den Zeilenenden entfernen,
in den Zeilen 120 bis Dateiende, in denen \'rot\' vorkommt.

/\\(.\\+\\) \\+\\1

Suchen nach zwei genau gleichen Zeichenketten, zwischen denen
mindestens 1 Leerzeichen steht:

html lang
details details
it to
\" \"
// /Po
in nc
Edge gesondert
var arrNode
var rahmen

Falsch. ;) Außerdem ziemlich sinnfrei.

Übrigens hab\' ich mit pluma \"aufgeräumt\" (Suche nach \"\\t\" für Tabulator)
- nicht ganz so kryptisch und fehleranfällig. ;)

!DOCT200YPE HTML

In Deinen Dateien steht Vorstehendes.
Dies ist ein Fehler.
Man soll heutzutage unbedingt <!DOCTYPE HTML> verwenden.

Stimmt auffallend. Weiß\' auch nicht, wie das da \'reingeraten ist. Man
soll eben keiner Quellre blind vertrauen. Aber wohl auch keienem HTML -
Validator, der hat das auch nicht gemerkt. ;)
 
On 05/14/2020 15:21, Hartmut Kraus wrote:
Am 14.05.20 um 15:10 schrieb Helmut Schellong:

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

:120,$g/rot/s/[ ^I]\\+$//

Alle TABs und Spaces an den Zeilenenden entfernen,
in den Zeilen 120 bis Dateiende, in denen \'rot\' vorkommt.

/\\(.\\+\\) \\+\\1

Suchen nach zwei genau gleichen Zeichenketten, zwischen denen
mindestens 1 Leerzeichen steht:

html lang l l
details details
it to t t
\" \" \" \"
// /Po / /
in nc n n
Edge gesondert ge ge
var arrNode ar ar
var rahmen r r

Falsch. ;) Außerdem ziemlich sinnfrei.

Es wurde korrekt gesucht und gefunden, nicht falsch.
Als regexp-Beispiel ist es sinnvoll.


--
Mit freundlichen Grüßen
Helmut Schellong var@schellong.biz
www.schellong.de www.schellong.com www.schellong.biz
http://www.schellong.de/c.htm
http://www.schellong.de/htm/audio_proj.htm
http://www.schellong.de/htm/audio_unsinn.htm
 
On 05/14/2020 15:21, Hartmut Kraus wrote:
Am 14.05.20 um 15:10 schrieb Helmut Schellong:

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

:120,$g/rot/s/[ ^I]\\+$//

Alle TABs und Spaces an den Zeilenenden entfernen,
in den Zeilen 120 bis Dateiende, in denen \'rot\' vorkommt.

/\\(.\\+\\) \\+\\1

Suchen nach zwei genau gleichen Zeichenketten, zwischen denen
mindestens 1 Leerzeichen steht:

html lang l l
details details
it to t t
\" \" \" \"
// /Po / /
in nc n n
Edge gesondert ge ge
var arrNode ar ar
var rahmen r r

Falsch. ;) Außerdem ziemlich sinnfrei.

Es wurde korrekt gesucht und gefunden, nicht falsch.
Als regexp-Beispiel ist es sinnvoll.


--
Mit freundlichen Grüßen
Helmut Schellong var@schellong.biz
www.schellong.de www.schellong.com www.schellong.biz
http://www.schellong.de/c.htm
http://www.schellong.de/htm/audio_proj.htm
http://www.schellong.de/htm/audio_unsinn.htm
 
Am 14.05.20 um 15:32 schrieb Helmut Schellong:
On 05/14/2020 15:21, Hartmut Kraus wrote:
Am 14.05.20 um 15:10 schrieb Helmut Schellong:

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

:120,$g/rot/s/[ ^I]\\+$//

Alle TABs und Spaces an den Zeilenenden entfernen,
in den Zeilen 120 bis Dateiende, in denen \'rot\' vorkommt.

/\\(.\\+\\) \\+\\1

Suchen nach zwei genau gleichen Zeichenketten, zwischen denen
mindestens 1 Leerzeichen steht:

html lang            l l
details details
it to                 t t
\" \"                   \" \"
// /Po                / /
in nc                 n n
Edge gesondert        ge ge
var arrNode           ar ar
var rahmen            r r

Falsch. ;) Außerdem ziemlich sinnfrei.

Es wurde korrekt gesucht und gefunden, nicht falsch.
Als regexp-Beispiel ist es sinnvoll.

Naja, eine sinnvolle Anwndung erschließt sich mir daraus noch nicht. ;)
Eins echte Rationalierung der Entwicklungsarbeit wäre ein Tool (hab\' ich
mal für Visual Basic gesehen), das aus den Tabellen - und Spaltennamen
der Datenbank entsprechenden Code (in diesem Fall für JS) generiert, in
dem Sinne:

- Eine Tabelle => ein Objekt,
- Eine Zeile -> eine Instanz des Objekts mit den entsprechenden Methoden
zum Setzen und Auslesen der Eigenschaften, also eine Spalte => eine
Eigenschaft

Beispiel: Eine Leistung hat eben die Eigenschaften \"Stundensatz\", \"Zeit\"
und \"EP Material\" - (ich denke, wenn du JS beherrschst, ist das für dich
kalter Kaffee). ;) ) Wie du siehst, hab\' ich das \"händisch\" (und damit
fehleranfällig) in den Code \'reinkopiert. So ein \"Gerüst\" wie oben
beschrieben müsste automatisch erzeugt werden.
 
Am 14.05.20 um 15:55 schrieb Hartmut Kraus:
Am 14.05.20 um 15:32 schrieb Helmut Schellong:
On 05/14/2020 15:21, Hartmut Kraus wrote:
Am 14.05.20 um 15:10 schrieb Helmut Schellong:

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

:120,$g/rot/s/[ ^I]\\+$//

Alle TABs und Spaces an den Zeilenenden entfernen,
in den Zeilen 120 bis Dateiende, in denen \'rot\' vorkommt.

/\\(.\\+\\) \\+\\1

Suchen nach zwei genau gleichen Zeichenketten, zwischen denen
mindestens 1 Leerzeichen steht:

html lang            l l
details details
it to                 t t
\" \"                   \" \"
// /Po                / /
in nc                 n n
Edge gesondert        ge ge
var arrNode           ar ar
var rahmen            r r

Falsch. ;) Außerdem ziemlich sinnfrei.

Es wurde korrekt gesucht und gefunden, nicht falsch.
Als regexp-Beispiel ist es sinnvoll.

Naja, eine sinnvolle Anwndung erschließt sich mir daraus noch nicht. ;)
Eins echte Rationalierung der Entwicklungsarbeit wäre ein Tool (hab\' ich
mal für Visual Basic gesehen), das aus den Tabellen - und Spaltennamen
der Datenbank entsprechenden Code (in diesem Fall für JS) generiert, in
dem Sinne:

Ähm, genauer:

> - Eine Tabelle => eine /Klasse/, ;)

Das im Sinne echter Objektorientierung (\"MVC\"), meine Lösung mit PHP -
und JS - Arrays geht schon in die Richtung, ist aber noch nicht so das
Gelbe von\'s Ei. ;)

- Eine Zeile -> eine Instanz mit den entsprechenden Methoden
zum Setzen und Auslesen der Eigenschaften, also eine Spalte => eine
Eigenschaft

Beispiel: Eine Leistung hat eben die Eigenschaften \"Stundensatz\", \"Zeit\"
und \"EP Material\" - (ich denke, wenn du JS beherrschst, ist das für dich
kalter Kaffee). ;) ) Wie du siehst, hab\' ich das \"händisch\" (und damit
fehleranfällig) in den Code \'reinkopiert. So ein \"Gerüst\" wie oben
beschrieben müsste automatisch erzeugt werden.

--
http://hkraus.eu/
 
On 05/14/2020 15:55, Hartmut Kraus wrote:
Am 14.05.20 um 15:32 schrieb Helmut Schellong:
On 05/14/2020 15:21, Hartmut Kraus wrote:
Am 14.05.20 um 15:10 schrieb Helmut Schellong:

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

:120,$g/rot/s/[ ^I]\\+$//

Naja, eine sinnvolle Anwndung erschließt sich mir daraus noch nicht. ;) Eins
echte Rationalierung der Entwicklungsarbeit wäre ein Tool (hab\' ich mal für
Visual Basic gesehen), das aus den Tabellen - und Spaltennamen der Datenbank
entsprechenden Code (in diesem Fall für JS) generiert, in dem Sinne:

- Eine Tabelle => ein Objekt,
- Eine Zeile -> eine Instanz des Objekts mit den entsprechenden Methoden zum
Setzen und Auslesen der Eigenschaften, also eine Spalte => eine Eigenschaft

Beispiel: Eine Leistung hat eben die Eigenschaften \"Stundensatz\", \"Zeit\" und
\"EP Material\" - (ich denke, wenn du JS beherrschst, ist das für dich kalter
Kaffee). ;) ) Wie du siehst, hab\' ich das \"händisch\" (und damit
fehleranfällig) in den Code \'reinkopiert. So ein \"Gerüst\" wie oben
beschrieben müsste automatisch erzeugt werden.

Der folgende (und weitere) Quelltext cfgdata.c wurde vollständig
von einem Skript generiert (>500000 Byte).

Es wurden massiv Reguläre Ausdrücke verwendet.
Quelldateien sind cfgbase.txt, texts.h (texts256.h).

cfgbase.txt ist vergleichbar mit einem kurzen Stenographie-Inhalt.

==========================================================================
# include <def.h>
# include <var.h>
# include <texte.h>



// id: 0.0.000.00000
// d grp object

// struct cfgdata_t { const BYTE *grp, *sgrp;
// UNS4 id;
// UNS2 adr, len, nbit, bitpos;
// UNS4 flags;
// BYTE typ, darst, info1, info2;
// UNS2 parbn, nelem, voffs, access;
// const BYTE FAR *dfstr;
// UNS4 dfmima[3];
// UNS2 szname;
// VOL void *name;
// const BYTE FAR *einheit, *text, *info;
// cfap_t Tinfo, Tgrp, Tsgrp, Tbit, Text;
// };

const BYTE GCFG00500000[]= \"Installation\";
const BYTE GCFG01000000[]= \"UPC3\";
const BYTE gCFG01000000[]= \"Firmware^System\";
const BYTE GCFG01500000[]= \"Display\";
const BYTE GCFG02000000[]= \"Enable Parameter display\";
const BYTE GCFG02500000[]= \"Ethernet\";
const BYTE GCFG03000000[]= \"MODBUS\";
const BYTE GCFG03500000[]= \"RDP\";
const BYTE GCFG04000000[]= \"Main settings\";
const BYTE gCFG04000000[]= \"Regulator^Batteries^space\";
const BYTE GCFG04500000[]= \"Enable\";
const BYTE GCFG05000000[]= \"CAN Devices Count\";
const BYTE GCFG05500000[]= \"Assignment Measurement\";
const BYTE gCFG05500000[]= \"Batteries^Combs^General^Digital
Inputs^Mains\";
const BYTE GCFG06000000[]= \"Assignment Shunts\";
const BYTE GCFG06500000[]= \"Special set\";
const BYTE GCFG07000000[]= \"Mains monitoring (MMB)\";
const BYTE GCFG07500000[]= \"LVD PLD Functions\";
const BYTE gCFG07500000[]= \"LVD^PLD\";
const BYTE GCFG08000000[]= \"Digital inputs\";
const BYTE GCFG08500000[]= \"Signals enable\";
const BYTE gCFG08500000[]= \"Error state^Events
history^Modem^LED Func^Relay K1^Relay K2^Relay K3^Relay K4^Relay K5^Relay
K6^Relay K11^Relay K12^Relay K13^Relay K14^Relay K15^Relay K16^S1^S2^A^AA^AB\";
const BYTE GCFG09000000[]= \"Signals\";
const BYTE gCFG09000000[]= \"Outputs^Delay\";
const BYTE GCFG09500000[]= \"Comb values\";
const BYTE gCFG09500000[]= \"Thresholds^Rectifier\";
const BYTE GCFG10000000[]= \"General Thresholds\";
const BYTE gCFG10000000[]= \"Voltages^Currents^Temperatures\";
const BYTE GCFG10500000[]= \"Thresholds\";
const BYTE gCFG10500000[]= \"Vdc1^Vdc2\";
const BYTE GCFG11000000[]= \"Battery\";
const BYTE gCFG11000000[]= \"Devices^Batt_Tk^Shunts\";
const BYTE GCFG11500000[]= \"Battery Test\";
const BYTE gCFG11500000[]= \"Start at:\";
const BYTE GCFG12000000[]= \"Store Battery Test data\";
const BYTE GCFG12500000[]= \"Capacity Calculator\";
const BYTE GCFG13000000[]= \"Boost charge\";
const BYTE GCFG13500000[]= \"Manual charge\";
const BYTE GCFG14000000[]= \"System test\";
const BYTE GCFG14500000[]= \"Counter cells\";
const BYTE gCFG14500000[]= \"Cell1^Cell2\";
const BYTE GCFG15000000[]= \"Modem\";
const BYTE gCFG15000000[]= \"External^Internal\";
const BYTE GCFG15500000[]= \"Text Digital inputs\";
const BYTE GCFG16000000[]= \"Text Relay outputs\";
const BYTE GCFG16500000[]= \"Text Battery values\";
const BYTE gCFG16500000[]=
\"Battery1^Battery2^Battery3^Battery4^Battery5^Battery6^Battery7\";
const BYTE GCFG17000000[]= \"Text Comb values\";
const BYTE GCFG17500000[]= \"Text General parameters\";
const BYTE GCFG18000000[]= \"Batteries Identification strings\";
const BYTE GCFG18500000[]= \"Fuses Identification strings\";
const BYTE GCFG19000000[]= \"CAN Device Identification strings\";


#define D0000504000grp GCFG00500000, 0
// id; adr, len, nbit, bitpos,
// flags(_|abgl|_|_|_|_|_|_ | _|_|_|_|_|_|_|_)
// flags(dfltcalc|_|IP|Telem|infovals|Tbbig|novar|batt |
step10|mess|kamm|initcan|sig|nod|bak|ro);
// typ, darst, info1, info2, parbn, nelem, voffs, access;
#define D0000504000obj 504000, 32, 16, 0, 0,
0x00000200ul, \'s\', \'=\', \'?\', 0, 10, 1, 0, 0xFFFFu
const BYTE FAR S0000504000[]= \"TID\";
#define D0000504000str S0000504000
#define D0000504000dfmima 0, 0, 0
#define D0000504000szname sizeof(0), 0
const BYTE FAR T0000504000[]= \"iType ID\";
#define D0000504000einhtxt 0, T0000504000
#define D0000504000info 0
#define D0000504000Text 0, T_group+36, 0, 0, T_mu2+0

#define D0000506500grp GCFG00500000, 0
// id; adr, len, nbit, bitpos,
// flags(_|abgl|_|_|_|_|_|_ | _|_|_|_|_|_|_|_)
// flags(dfltcalc|_|IP|Telem|infovals|Tbbig|novar|batt |
step10|mess|kamm|initcan|sig|nod|bak|ro);
// typ, darst, info1, info2, parbn, nelem, voffs, access;
#define D0000506500obj 506500, 56, 16, 0, 0,
0x00000200ul, \'s\', \'=\', \'?\', 0, 12, 1, 0, 0xFFFFu
const BYTE FAR S0000506500[]= \"MATID\";
#define D0000506500str S0000506500
#define D0000506500dfmima 0, 0, 0
#define D0000506500szname sizeof(0), 0
const BYTE FAR T0000506500[]= \"iMaterial ID\";
#define D0000506500einhtxt 0, T0000506500
#define D0000506500info 0
#define D0000506500Text 0, T_group+36, 0, 0, T_mu2+43

#define D0000509000grp GCFG00500000, 0
// id; adr, len, nbit, bitpos,
// flags(_|abgl|_|_|_|_|_|_ | _|_|_|_|_|_|_|_)
// flags(dfltcalc|_|IP|Telem|infovals|Tbbig|novar|batt |
step10|mess|kamm|initcan|sig|nod|bak|ro);
// typ, darst, info1, info2, parbn, nelem, voffs, access;
#define D0000509000obj 509000, 80, 16, 0, 0,
0x00000200ul, \'s\', \'=\', \'?\', 0, 13, 1, 0, 0xFFFFu
const BYTE FAR S0000509000[]= \"SERNO\";
#define D0000509000str S0000509000
#define D0000509000dfmima 0, 0, 0
#define D0000509000szname sizeof(0), 0
const BYTE FAR T0000509000[]= \"iSerial-No\";
#define D0000509000einhtxt 0, T0000509000
#define D0000509000info 0
#define D0000509000Text 0, T_group+36, 0, 0, T_mu2+3

#define D0000511500grp GCFG00500000, 0
// id; adr, len, nbit, bitpos,
// flags(_|abgl|_|_|_|_|_|_ | _|_|_|_|_|_|_|_)
// flags(dfltcalc|_|IP|Telem|infovals|Tbbig|novar|batt |
step10|mess|kamm|initcan|sig|nod|bak|ro);
// typ, darst, info1, info2, parbn, nelem, voffs, access;
#define D0000511500obj 511500, 104, 8, 0, 0,
0x00000200ul, \'s\', \'=\', \'?\', 0, 0, 1, 0, 0xFFFFu
const BYTE FAR S0000511500[]= \"HWID\";
#define D0000511500str S0000511500
#define D0000511500dfmima 0, 0, 0
#define D0000511500szname sizeof(0), 0
const BYTE FAR T0000511500[]= \"iHardware ID\";
#define D0000511500einhtxt 0, T0000511500
#define D0000511500info 0
#define D0000511500Text 0, T_group+36, 0, 0, T_mu2+20

#define D0000514000grp GCFG00500000, 0

...................

#define D0019039500grp GCFG19000000, 0
// id; adr, len, nbit, bitpos,
// flags(_|abgl|_|_|_|_|_|_ | _|_|_|_|_|_|_|_)
// flags(dfltcalc|_|IP|Telem|infovals|Tbbig|novar|batt |
step10|mess|kamm|initcan|sig|nod|bak|ro);
// typ, darst, info1, info2, parbn, nelem, voffs, access;
#define D0019039500obj 19039500, 36168, 16, 0, 0,
0x00000200ul, \'s\', \'=\', \'?\', 0, 916, 4, 16, 0xFF03u
const BYTE FAR S0019039500[]= \"UMD INSD\";
#define D0019039500str S0019039500
#define D0019039500dfmima 0, 0, 0
#define D0019039500szname sizeof(0), 0
const BYTE FAR T0019039500[]= \"Text MoId UMD INSD\";
#define D0019039500einhtxt 0, T0019039500
#define D0019039500info 0
#define D0019039500Text 0, T_group+21, T_mosg+11, 0, T_moid+4



const struct cfgdata_t FAR CFGdata[]= {
{ D0000504000grp, D0000504000obj, D0000504000str, {D0000504000dfmima},
D0000504000szname, D0000504000einhtxt, D0000504000info, D0000504000Text },
{ D0000506500grp, D0000506500obj, D0000506500str, {D0000506500dfmima},
D0000506500szname, D0000506500einhtxt, D0000506500info, D0000506500Text },
{ D0000509000grp, D0000509000obj, D0000509000str, {D0000509000dfmima},
D0000509000szname, D0000509000einhtxt, D0000509000info, D0000509000Text },
{ D0000511500grp, D0000511500obj, D0000511500str, {D0000511500dfmima},
D0000511500szname, D0000511500einhtxt, D0000511500info, D0000511500Text },
{ D0000514000grp, D0000514000obj, D0000514000str, {D0000514000dfmima},
D0000514000szname, D0000514000einhtxt, D0000514000info, D0000514000Text },
{ D0000516500grp, D0000516500obj, D0000516500str, {D0000516500dfmima},
D0000516500szname, D0000516500einhtxt, D0000516500info, D0000516500Text },
{ D0000519000grp, D0000519000obj, D0000519000str, {D0000519000dfmima},
D0000519000szname, D0000519000einhtxt, D0000519000info, D0000519000Text },
{ D0000521500grp, D0000521500obj, D0000521500str, {D0000521500dfmima},
D0000521500szname, D0000521500einhtxt, D0000521500info, D0000521500Text },
{ D0000524000grp, D0000524000obj, D0000524000str, {D0000524000dfmima},
D0000524000szname, D0000524000einhtxt, D0000524000info, D0000524000Text },
{ D0000526500grp, D0000526500obj, D0000526500str, {D0000526500dfmima},
D0000526500szname, D0000526500einhtxt, D0000526500info, D0000526500Text },

...................

{ D0019037500grp, D0019037500obj, D0019037500str, {D0019037500dfmima},
D0019037500szname, D0019037500einhtxt, D0019037500info, D0019037500Text },
{ D0019038000grp, D0019038000obj, D0019038000str, {D0019038000dfmima},
D0019038000szname, D0019038000einhtxt, D0019038000info, D0019038000Text },
{ D0019038500grp, D0019038500obj, D0019038500str, {D0019038500dfmima},
D0019038500szname, D0019038500einhtxt, D0019038500info, D0019038500Text },
{ D0019039000grp, D0019039000obj, D0019039000str, {D0019039000dfmima},
D0019039000szname, D0019039000einhtxt, D0019039000info, D0019039000Text },
{ D0019039500grp, D0019039500obj, D0019039500str, {D0019039500dfmima},
D0019039500szname, D0019039500einhtxt, D0019039500info, D0019039500Text },
{ 0 }
};

const unsigned CFGdata_ne= sizeof(CFGdata)/sizeof(*CFGdata);
==========================================================================


--
Mit freundlichen Grüßen
Helmut Schellong var@schellong.biz
www.schellong.de www.schellong.com www.schellong.biz
http://www.schellong.de/c.htm
http://www.schellong.de/htm/audio_proj.htm
http://www.schellong.de/htm/audio_unsinn.htm
 
Am 14.05.20 um 15:32 schrieb Helmut Schellong:
On 05/14/2020 15:21, Hartmut Kraus wrote:
Am 14.05.20 um 15:10 schrieb Helmut Schellong:

Mit oder ohne RegExp zu formulieren?

Sowohl als auch. Literal / Allgemeiner Platzhalter/ Regulärer Ausdruck

:120,$g/rot/s/[ ^I]\\+$//

Alle TABs und Spaces an den Zeilenenden entfernen,
in den Zeilen 120 bis Dateiende, in denen \'rot\' vorkommt.

/\\(.\\+\\) \\+\\1

Suchen nach zwei genau gleichen Zeichenketten, zwischen denen
mindestens 1 Leerzeichen steht:

html lang            l l
details details
it to                 t t
\" \"                   \" \"
// /Po                / /
in nc                 n n
Edge gesondert        ge ge
var arrNode           ar ar
var rahmen            r r

Falsch. ;) Außerdem ziemlich sinnfrei.

Es wurde korrekt gesucht und gefunden, nicht falsch.
Als regexp-Beispiel ist es sinnvoll.

Naja, eine sinnvolle Anwndung erschließt sich mir daraus noch nicht. ;)
Eins echte Rationalierung der Entwicklungsarbeit wäre ein Tool (hab\' ich
mal für Visual Basic gesehen), das aus den Tabellen - und Spaltennamen
der Datenbank entsprechenden Code (in diesem Fall für JS) generiert, in
dem Sinne:

- Eine Tabelle => ein Objekt,
- Eine Zeile -> eine Instanz des Objekts mit den entsprechenden Methoden
zum Setzen und Auslesen der Eigenschaften, also eine Spalte => eine
Eigenschaft

Beispiel: Eine Leistung hat eben die Eigenschaften \"Stundensatz\", \"Zeit\"
und \"EP Material\" - (ich denke, wenn du JS beherrschst, ist das für dich
kalter Kaffee). ;) ) Wie du siehst, hab\' ich das \"händisch\" (und damit
fehleranfällig) in den Code \'reinkopiert. So ein \"Gerüst\" wie oben
beschrieben müsste automatisch erzeugt werden.
 
Axel Berger <Spam@Berger-Odenthal.De> wrote:
Hanno Foest wrote:
Nachsendeantrag

Man beachte auch die darin steckende Dreistigkeit. Einem Dienstleister
erteile einen Auftrag, Anträge stelle ich an weisungsgebundene
Vorgesetzte.

Deswegen heißt es ja auch seit etlichen Jahren Nachsendeauftrag und
man bezahlt dafür ein Entgelt und keine Gebühr. Und wenn man nicht
höllisch aufpasst UND auf die automatische Meldung des Umzugs für
Zeitschriftenabos verzichtet, verkauft die Post die Daten über den
eigenen Adressverlag auch gleich weiter an einschlägige Adreßhöker und
Werbetreibende.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | \" Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom \" |
Nordisch by Nature | Lt. Worf, TNG \"Rightful Heir\" | Fon: *49 621 72739834
 
Axel Berger <Spam@Berger-Odenthal.De> wrote:
Hanno Foest wrote:
Nachsendeantrag

Man beachte auch die darin steckende Dreistigkeit. Einem Dienstleister
erteile einen Auftrag, Anträge stelle ich an weisungsgebundene
Vorgesetzte.

Deswegen heißt es ja auch seit etlichen Jahren Nachsendeauftrag und
man bezahlt dafür ein Entgelt und keine Gebühr. Und wenn man nicht
höllisch aufpasst UND auf die automatische Meldung des Umzugs für
Zeitschriftenabos verzichtet, verkauft die Post die Daten über den
eigenen Adressverlag auch gleich weiter an einschlägige Adreßhöker und
Werbetreibende.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | \" Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom \" |
Nordisch by Nature | Lt. Worf, TNG \"Rightful Heir\" | Fon: *49 621 72739834
 
Joerg <news@analogconsultants.com> wrote:
Das hoert sich aehnlich an wie unsere Social Security Administration
(Rentenversicherung und Alters-KV in den USA). Deren IT ist IMO unfaehig
und sie kriegen einen einfachen Online Zugang nicht verifiziert. Der ist
aber fuer manches noetig. \"Dann muessen Sie zu einer unsere
Aussenstellen kommen und den Zugang dort einrichten lassen!\". Die sind
aber wegen Corona-Virus geschlossen und es ist eine Terminsache.
Abgesehen davon, dass ich nicht mehr denke, dass die Leute dort
kompetenter sind.

Die Bürokratie der USA ist der Deutschen in den Disziplinen
Übertriebenheit und Bizarrheit mindestens ebenbürtig, wenn nicht sogar
überlegen.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | \" Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom \" |
Nordisch by Nature | Lt. Worf, TNG \"Rightful Heir\" | Fon: *49 621 72739834
 

Welcome to EDABoard.com

Sponsor

Back
Top