Select Git revision
PViewDataListIO.cpp 23.46 KiB
// Gmsh - Copyright (C) 1997-2013 C. Geuzaine, J.-F. Remacle
//
// See the LICENSE.txt file for license information. Please report all
// bugs and problems to the public mailing list <gmsh@geuz.org>.
#include <string.h>
#include <set>
#include "PViewDataList.h"
#include "MElement.h"
#include "Numeric.h"
#include "StringUtils.h"
#include "GmshMessage.h"
#include "GmshDefines.h"
#include "MVertexPositionSet.h"
#include "Context.h"
#include "adaptiveData.h"
#include "OS.h"
static void dVecRead(std::vector<double> &v, int n, FILE *fp,
bool binary, int swap)
{
if(!n) return;
v.resize(n);
if(binary){
if(!fread(&v[0], sizeof(double), n, fp))
Msg::Error("Read error");
if(swap) SwapBytes((char*)&v[0], sizeof(double), n);
}
else{
for(int i = 0; i < n; i++){
if(!fscanf(fp, "%lf", &v[i])){
Msg::Error("Read error");
break;
}
}
}
}
static void cVecRead(std::vector<char> &v, int n, FILE *fp,
bool binary, int swap, bool oldStyle)
{
if(!n) return;
v.resize(n);
if(binary){
if(!fread(&v[0], sizeof(char), n, fp))
Msg::Error("Read error");
if(swap) SwapBytes((char*)&v[0], sizeof(char), n);
}
else{
if(oldStyle){
for(int i = 0; i < n; i++){
if(!fscanf(fp, "%c", &v[i])){
Msg::Error("Read error");
break;
}
if(v[i] == '^') v[i] = '\0';
}
}
else{
for(int i = 0; i < n; i++){
char c = (char)fgetc(fp);
if(c == EOF){
Msg::Error("Read error");
break;
}
else{
v[i] = c;
}
}
}