TSV-Dateien (tab-separierte Werte) in C++ einlesen

Dieses minimale Beispiel zeigt, wie man tab-separierte Dateien (TSV) in C++ einlesen kann. Unser Beispiel nutzt boost::algorithm::split, um jede Zeile in ihre tab-separierten Werte aufzuspalten.

#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <boost/algorithm/string.hpp>

using namespace std;
using namespace boost::algorithm;

int main(int argc, char** argv) {
    ifstream fin("test.tsv");
    string line;
    while (getline(fin, line)) {
        // Split line into tab-separated parts
        vector<string> parts;
        split(parts, line, boost::is_any_of("\t"));
        // TODO Your code goes here!
        cout << "First of " << parts.size() << " elements: " << parts[0] << endl;
    }
    fin.close();
}

 

 

Posted by Uli Köhler in C++

C++: Datei Zeile für Zeile lesen (minimales Beispiel)

Dieses minimale Beispiel liest eine Datei mithilfe von std::getline und schreibt dann jede Zeile nach stdout.

#include <fstream>
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char** argv) {
    ifstream fin("test.tsv");
    string line;
    while (getline(fin, line)) {
        // TODO Hier kannst du die Zeile weiterverarbeiten. Dies ist nur ein Beispiel:
        cout << line << endl;
    }
    fin.close();
}

 

Posted by Uli Köhler in C++

GCC-Fehler ‚Warnung: undefinierter Verweis auf »dlopen«‘ beheben

Wenn GCC beim Linken eine Fehlermeldung wie diese angezeigt wird:

/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/librocksdb.so: Warnung: undefinierter Verweis auf »dlopen«
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/librocksdb.so: Warnung: undefinierter Verweis auf »dlclose«
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/librocksdb.so: Warnung: undefinierter Verweis auf »dlerror«
/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib/librocksdb.so: Warnung: undefinierter Verweis auf »dlsym«

dann muss zusätzlich noch die dl-Bibliothek gelinkt werden, die die Funktionen zum dynamischen Laden von Symbolen dlopen, dlclose, dlerror & dlsym enthält.

In GCC kann man die dl-Bibliothek mit dem -ldl-Flag linken.

Posted by Uli Köhler in C++

FFT-Frequenzauflösungs-Rechner

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

pt

Hz


f_{Auflösung} = \frac{f_{Samplerate}}{N_{FFT}}

Posted by Uli Köhler in Calculators

Hz in RPM umrechnen

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

Hz


f_{RPM} = f_{Hz} \cdot 60

Posted by Uli Köhler in Calculators, Online-Rechner

RPM in Hz umrechnen

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

RPM


f_{Hz} = \frac{f_{RPM}}{60}

Posted by Uli Köhler in Calculators, Online-Rechner

Körperoberflächen-Rechner

Note about medical information:
This information is presented for informational purposes only and is intended for professionals. While we strive to provide accurate information, this information might be outdated, unintentionally misleading or incorrect. Consult a medical professional and/or read the primary sources cited in our article before basing any decision on this information.
TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

m

kg





Quellen & Formeln:Halls.md

Posted by Uli Köhler in Calculators, Online-Rechner

Gramm-in-Mol-Online-Umrechner

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

g

g/mol

n[mol] = \frac{m[g]}{M_m[\frac{g}{mol}]}
Posted by Uli Köhler in Calculators, Online-Rechner

Reepschnur-Bruchlast-Rechner (EN 564)

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

mm

F_{\text{Bruch,min}}[N] = 0{,}20\frac{\text{kN}}{\text{mm²}} \cdot \text{D[mm]}²
Posted by Uli Köhler in Unkategorisiert

Glühbirnen-Leistungs-Rechner

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

V

A

P_{\text{Glühbirne}} = U_{\text{Glühbirne}} \cdot I_{\text{Glühbirne}}
Posted by Uli Köhler in Elektronik, Online-Rechner

Relais-Spulenstrom-Rechner (aus Spulenleistung und Spulenspannung)

TechOverflow-Online-Rechner:
Du kannst hier auch Werte mit SI-Suffix eingeben, z.B. 12.2m (entspricht 0.012) oder 14k (14000) oder 32u (0.000032) und Werte mit Einheiten (z.B. 12V).
Die Ergebnisse werden live während der Eingabe berechnet und direkt unter dem Rechner angezeigt, also musst du nicht Return drücken oder auf einen Berechnen-Button klicken. Stelle nur sicher, dass alle Eingabefelder grün sind, indem du valide Werte einträgst.

V

W

I_{\text{Spule}} = \frac{P_{\text{Spule}}}{U_{\text{Spule}}}
Posted by Uli Köhler in Elektronik, Online-Rechner

Wie erzeugt man eine 3D-Matrix in Octave?

Um in Octave eine X*Y*Z 3D-matrix zu erzeuen, benutze

A = zeros(X, Y, Z);

Beispiel, um eine 5x6x3 Matrix zu erzeugen:

A = zeros(5, 6, 3);

zeros() initialisiert die Matrix auf 0:

>> A = zeros(5, 6, 3);
>> A
A =

ans(:,:,1) =

   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0

ans(:,:,2) =

   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0

ans(:,:,3) =

   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0
   0   0   0   0   0   0

 

Posted by Uli Köhler in Unkategorisiert

Was bedeutet ‚+ve‘ oder ‚-ve‘ in der Medizin?

+ve bedeutet positiv (engl. positive)
-ve bedeutet negativ (engl. negative)

Einige Autoren nutzen +ve oder -ve anstatt nur + und -, um zu vermeiden, dass - mit einem Gedankenstrich verwechselt wird und + mit einem und.

Zum Beispiel sagt p53-ve aus, dass p53 negativ ist. Was positiv oder negativ genau bedeutet, hängt vom Kontext ab ; es kann z.B. darauf hinweisen dass p53 in einer Gruppe von Patienten nicht mutiert ist. Dieses Paper enthält ein Beispiel, in dem p53-ve auf diese Weise benutzt wird.

Posted by Uli Köhler in Unkategorisiert

Hat der SAMD21 Pullups an jedem Pin?

Ja, die ATSAMD21-Mikrocontroller-Familie hat integrierte pullup-Widerstände (und auch pulldown-Widerstände) auf jedem Port A bzw. Port B-Pin (z.B. PB03 oder PA14) außer PA24 und PA25. Du kannst die pullup- bzw pulldown-Widerstände in Firmware aktivieren oder deaktivieren.

Der RESET-Pin hat ebenfalls einen internen pullup-Widerstand. Dieser ist jedoch immer aktiv und kann nicht deaktiviert werden.

Posted by Uli Köhler in Elektronik

Wie verbindet man den WP-Pin (Write Protect) eines EEPROMs?

Normalerweise solltest du den WP-Pin mit GND verbinden. Dadurch wird der Schreibschutz abgeschaltet und du kannst im EEPROM sowohl lesen wie auch schreiben.

Der WP-Pin ist bei allen 24xx-EEPROMs active-high, d.h. der Schreibschutz wird aktiviert, wenn der WP-Pin mit VCC verbunden wird (z.B. mit 3.3V). Sieh dir für mehr Informationen das Datenblatt deines EEPROMs an, z.B. das AT24CS04-Datenblatt. Der WP-Pin ist bei allen 24xx-EEPROMs gleich, unabhängig vom Hersteller des Chips.

Falls du den Schreibschutz aktivieren möchtest, um das versehentliche Überschreiben der Daten im EEPROM zu verhindern, verbinde den WP-Pin entweder mit einem Mikrocontroller oder mit einer externen Logikschaltung. Denke daran, dass du den EEPROM ersteinmal mit Daten beschreiben musst, und dafür muss der WP-Pin low sein, d.h. mit GND verbunden.

Das Folgende Bild zeigt einen EEPROM in KiCAD, dessen Pins so verbunden wurden, dass man den Speicher sowohl lesen wie auch schreiben kann.

Posted by Uli Köhler in Elektronik

Beispielcode: Koa.JS mit Router & Body-Parser

Dieser Beispielcode stellt die einfachstmögliche Koa.JS-Applikation dar, die ich als Template für verschiedene Webserver-Projekte verwende.

#!/usr/bin/env node
const router = require('koa-router')();
const koaBody = require('koa-body');
const Koa = require('koa');
const app = new Koa();

app.use(koaBody());

router.get('/', async ctx => {
    ctx.body = "Hallo Welt!";
});

app.use(router.routes());

if (!module.parent) app.listen(3000);

Installiere die Abhängigkeiten mit

npm i --save koa koa-router koa-body

und führe den Code so aus, nachdem du den obenstehenden Code als index.js abgespeichert hast:

node index.js

Während node index.js noch läuft, öffne http://localhost:3000 . Du solltest dort Hallo Welt! sehen. Jetzt bist du bereit, das Beispiel zu deiner eigenen Webapplikation auszubauen.

Posted by Uli Köhler in Javascript, NodeJS

Was ist ‚lamp controlgear‘ in der Beleuchtungstechnik?

lamp controlgear ist die englische Bezeichnung für Betriebsgeräte (controlgear) für Beleuchtungen (lamp).

Typische Beispiele sind elektronische Betriebsgeräte für LED-Module (electronic controlgear for LED modules).

Der Begriff controlgear wird z.B. auch in IEC-Standards benutzt, beispielsweise IEC 61347-2-13 (deutsche Version) und kann somit als offizielle Bezeichnung für diese Produktgruppe dienen.

Typischerweise ist in diese Standards ein controlgear/Betriebsgerät als Einheit definiert, die eine nachgeschaltete Beleuchtung mit der für die Beleuchtung spezifizierte Spannung bzw. mit dem spezifiziertem Strom versorgt.

Posted by Uli Köhler in Elektronik

Widerstands-Leistung online berechnen

Benutze diesen Online-Rechner, um die Leistung in Watt zu berechnen, die von einem Widerstand dissipiert wird, wenn du den Widerstand in Ω und den Strom in A kennst!

Continue reading →

Posted by Uli Köhler in Elektronik, Online-Rechner

Was ist ‚&hellip;‘ in HTML?

&hellip; ist der HTML-Entity-Code für Punkt-Punkt-Punkt:

Wenn du &hellip; auf einer Webseite außerhalb von HTML-Quellcode siehst, heißt das normalerweise, dass der Autor oder das Content-Management-System die Entität inkorrekt eingefügt hat. Eigentlich sollte dort stehen.

Ich empfehle, das Unicode-Zeichen HORIZONTAL ELLIPSIS (siehe den obenstehenden Codeblock) anstatt der HTML-Entität &hellip; zu verwenden.

Du musst dazu jedoch den Tag

<meta charset="utf-8" />

in deinem HTML-<head> haben, damit der Browser weiß, mit welchem Zeichensatz die Seite kodiert ist.

Posted by Uli Köhler in Unkategorisiert

Beispiel für ein minimales WordPress-Plugin

Dieses Beispiel zeigt das minimale WordPress-Plugin – es macht absolut nichts, aber du kannst es aktivieren und es als Basis für eigene Plugins nutzen.

Zuerst erzeuge einen Ordner für dein Plugin in wp-content/plugins/, zum Beispiel wp-content/plugins/mein-plugin

Speichere den Folgenden Code als functions.php im Plugin-Ordner, z.B. wp-content/plugins/my-plugin/functions.php

<?php 
/*
Plugin Name: My plugin
*/

Nun kannst du dein Plugin im WordPress-Adminbereich aktivieren.

Posted by Uli Köhler in PHP, Wordpress