Daten in der Datenbank mit LibreOffice verändern --> welches Speicherformat?

Hallo Community,

benutze IPS 4.1 unter Ubuntu 16.04.
Wenn ich .csv-Dateien in der Datenbank ändern möchte, dann speichert mir LibreOffice Calc die Zahlen in einem anderen Format ab. IPS kann die Daten dadurch nicht mehr lesen / benutzen.

Wie kann ich die Daten mittels LibreOffice verändern?

Anbei einige Screenshots:

  • [li]das Öffnen der Orginaldatei:
    [/li]
    [li]Darstellung der Orginaldatei:
    [/li]2.png
    [li]Darstellung der neu eingelesenen, abgeänderten Datei:
    [/li]3.png
    [li]Abbild der Orginaldatei (links) und der abgeändert abgespeicherten Datei (rechts) mittels „gedit“
    [/li]

Für Eure Hilfe wäre ich sehr dankbar.

Viele Grüße
Wickie

Ich weiß keine genau Antwort, aber du möchtest als Dezimaltrennzeichen weiterhin einen Punkt verwenden. Evtl. ist das gar nicht änderbar, sondern vom Gebiebtsschema fest vorgegeben.

pares

Hallo Community,

habe das Problem als Anlass genommen, mich in Python einzuarbeiten und die Datenbank damit zu bearbeiten.
Anbei das Python-File:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import csv
#import numpy as np  # nicht notwendig
import os

Variable = ["34989", "13146","40580","26970","33804"]	# Variablen-ID in IP-Symcon
#dWert = [324, 1906,990,2678,771]	# dieser Wert wird der bestehenden Variablen hinzuaddiert
dWert = [326, 1892,990,1,788]	# dieser Wert wird der bestehenden Variablen hinzuaddiert
#dWert = [0,0,0,0,0]
time = 1481485200	#1481464578	#1477983114	# ab diesem Zeitstempel erfolgt die Veraenderung des Zeitstempels

i = 0
#Anzahl = len(Variable)	# so viele Variablen sind zu bearbeiten
for Name in Variable:
	print (Name)
	print (i)
	Variable_str = str(Name)	# in string umwandeln
	reader = csv.reader(open(Variable_str +".csv", "r"),delimiter=',')
	# delimiter: Varieblentrennzeichen in der CSV-Datei
	# r: nur lesen ("csv.reader")
	# w: nur schreiben ("csv.writer")
	os.rename(Variable_str+".csv", Variable_str +"_org.csv")	#umbenennen
	writer = csv.writer(open(Variable_str+".csv", "w"),delimiter=',')
	
	dWert_str = dWert[i]
	for row in reader:
		if int(row[0]) > time: 
			t = [int(row[0]),float(row[1])+dWert_str]
		else:
			t = [int(row[0]),float(row[1])+0]
		writer.writerow(t)
		#int / float --> umwandeln vom string nach int, bzw. float	
		#print (t)
	i +=1

Das Skript macht folgendes:

[ul]
[li]CSV-Datei der Rohdaten (z.B. … /2016/11/123456.csv) einlesen und umbenennen (–> 123456_org.csv)
[/li][li]neue CSV-Datei erzeugen (123456.csv)
[/li][li]ab einem gewissen Zeitstempel die Werte ändern (z.B. konstanten Wert addieren)
[/li][/ul]

Folgendes Vorgehen ist zu empfehlen:

[ol]
[li]komplette Datenbank extern sichern
[/li][li]Instanzen / Skripte stoppen, die auf die Variablen zugreifen / verändern
[/li][li]Python-Skript in den entsprechenden Ordner der Rohdaten (z.B. …/db/2016/11/) verschieben
[/li][li]zu ändernde Variablen-IDs / Rechenoption / Zeitstempel im Skript anpassen
[/li][li]Python-Skript ausführen
[/li][li]Werte in der Datenbank aggregieren
[/li][li]evtl. letzten Wert der Datenbank direkt im Archive-Handler löschen
[/li][li]evtl. aktuellen Wert der gerade geänderten Variablen anpassen
[/li][li]zuvor gestoppte Skripte / Instanzen wieder starten
[/li][li]geänderte Variablen im WebFront / Archieve-Handler überprüfen
[/li][/ol]

Vielleicht kann jemand damit etwas anfangen.
Bei mir funktioniert die Vorgehensweise einwandfrei.

Viele Grüße
Wickie