Español
Fuente/ Codesnippets

Matrix de Excel-CSV matemáticamente correcto indexiert einlesen

 

p.specht

Das Thema "Matrix de Excel-CSV matemáticamente correcto indexiert einlesen" grenzt scheinbar a una Kunstform: El matemáticamente korrekte Indexierung en uno Matrix lautet bekanntlich M_Zeilenindex,Spaltenindex, y beide Indizes beginnen con 1. Das wäre auch en XProfan en el Principio realisierbar, obwohl entonces wegen des Beginns en 0 una gewisse Platzverschwendung stattfinden sería. En berechneten Indizes en Ensamblador aber wäre el geradezu una Katastrophe, deshalb wäre Yo persönlich geneigt, de Null weg a indizieren:

Declarar M![Zeilenanzahl-1,Spaltenanzahl-1]
con Aufruf: M![Línea-1,Spalte-1]
Größere Matrizen schreibt uno mejor igual en Excel (oder Calc de OpenOffice, oder en LibreOffice) y exportiert esta como CSV con Spaltentrenner ´|´ y Zeilentrenner (z.B. ´;´). Ein direktes Einlesen de el Expediente incluso quería me bisher no gelingen, beide Programas uso Kompressionsalgorithmen.  Beim Einlesen puede ser aber wenigstens igual el Descripción en Form de Zeilen- y Spaltenüberschriften loswerden, el en Berechnung en XProfan ohnehin sólo lästig wären (Wohlgemerkt, lo va natürlich en Operationen, el el Tabellenprogramm incluso no beherrscht, etwa Spannbaumoptimierung etc.)


Aus technischen Gründen landen nun el una cierto konstante Línea laufende Spaltenindexe (Im Volksmund "Zeilenweises einlesen" genannt) NICHT hintereinander en el Speicher! XProfan, aber z.B. auch Pascal y Fortran, halten Arrays SPALTENWEISE en el Speicher: Erst se el todo "Nullte Spalte" eingelesen, entonces el todo "Spalte 1" usw. Es para Ensamblador GUT, porque el Spaltenelemente entonces para Operationen gemeinsam en el schellen Cache mantenido voluntad puede.

El Übersetzung el Indizes en Speicherplatz-Adressen va entonces relativ simplemente:
Basisadresse el Statisch definierten Matrix: Addr(M![0,0])
Laufindex = (Mathematischer_Spaltenindex-1)*Zeilenanzahl + (Mathematischher_Zeilenindex-1)
Adressversatz = Laufindex * 8

Umgekehrt gilt:
Mathematischer_Spaltenindex = Laufindex \ Zeilenanzahl + 1
Mathematischer_Zeilenindex = (Laufindex mod Zeilenanzahl) + 1

Título de la ventana "Excel-Matrix CSV-Export matemáticamente korrekt indexiert einlesen"
Ventana de Estilo 24:CLS:font 2
Declarar data$,tst$[],zl$[],n&,m&
data$="Tabelle|Über B1|Über C1|Über D1;"+\
"Seite A1|11|12|13;"+\
"Seite A2|21|22|23;"+\
"Seite A3|31|32|33;"+\
"Seite A4|41|42|43;"+\
"Seite A5|51|52|53"
tst$[]=explode(data$,";"):n&=sizeof(tst$[])-1
clear zl$[]:zl$[]=Explode(tst$[1],"|"):m&=sizeof(zl$[])-1
declarar M![n&-1,m&-1],i&,j&

Whileloop 0,n&-1:i&=&Loop

    clear zl$[]:zl$[]=Explode(tst$[i&+1],"|"):m&=sizeof(zl$[])-1

    whileloop 0,m&-1:j&=&Loop

        M![i&,j&]=val(zl$[j&+1])

    endwhile

endwhile

Conjunto("Decimals",1)
imprimir "Numerischen Teil como Float ";n&;" X ";m&;"-Matrix eingelesen:\n"

Whileloop 0,n&-1:i&=&Loop

    whileloop 0,m&-1:j&=&Loop

        Imprimir M![i&,j&],
        endwhile:imprimir
        endwhile:imprimir
        waitinput
        end
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
26.05.2021  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.423 Views

Untitledvor 0 min.
H.Brill25.08.2024
p.specht21.11.2021
R.Schneider20.11.2021
Uwe Lang20.11.2021
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie