Gens,
J'importe des valeurs à partir de fichiers CVS. L'un d'eux est une chaîne. Cependant, JMP ne parvient pas à lire la valeur. La première image est le fichier CVS dans lequel toutes les valeurs sont importées sauf « FlexSEM1000 ». Donc pas de problèmes là-bas. Cependant, la deuxième image montre la table JMP avec le F???? valeur. Comment puis-je résoudre ce problème ? Code correspondant ci-joint.
Daniel
Join_files = Expr(
For( i = 1, i <= N Items( path ), i+=2,
/*area, %area, and pore pixel count*/
jointable1 = Open( path[i] );
//jointable1 << Get Name;
samplename = Substr( jointable1 << Get Name, 1, 18 ); //sample replicate name //
samplename2 = Word(1,samplename, "_"); // Only sample name, no replicate suffix (i.e. a1, a2...)
jointable1 << New Column( "Sample",
Character,
Nominal,
Set Each Value( samplename ) // setting each row in column 1 to samp rep name //
);
/*diameter and pore pixel count*/
jointable2 = Open( path[i + 1] );
dt = Data Table( jointable1 ) << Join(
With( Data Table( jointable2 ) ),
Select( :Sample, :Area, :Name( "%Area" ),:scale, :thick, :pixelrad, :mag, :system),
SelectWith( :pixD1, :count1),
Cartesian Join
);
Close( jointable1, no save );
Close( jointable2, no save );
Columns();
Graphs();
Graphs2();
Graphs3();
dt << Set Name(samplename);
po = dt << get name;
dt << Save(SD1 || po);
);
);
Columns = Eval Expr(
//dt << New Column( "Condition", Character, Nominal, Set Each Value( "1:1" ) );
dt:Name( "%Area" ) << Set Name( "Image A pore area (%)", Numeric, Continuous );
dt:Area << Set Name( "Total Image pixel count (pore_part)", Numeric, Continuous );
dt:scale << Set Name("pix/mm scale", Numeric, Continuous);
dt:pixD1 << Set Name( "Pore Diameter (pixel)", Numeric, Continuous );
dt:count1 << Set Name( "Pore Pixel Count", Numeric, Continuous );
dt:thick << Set Name("d - thickness (m)", Numeric, Continuous);
dt:pixelrad << Set Name("LT Radius", Numeric, Continuous);
dt:mag << Set Name("Mag", Numeric, Continuous);
dt:system << Set Name("Image Mode", Character, Nominal);
dt:Sample << Set Display Width( 150 );

Craige,
J'ai pu revenir au code source qui a généré le csv et trouvé le problème. Tous les éléments du tableau étaient UTF-8, SAUF l'élément d'intérêt de la dernière colonne. J'ai corrigé le code et maintenant tout fonctionne. Je suppose que JMP voyait à la fois UTF-8 et UTF-16 et, comme il voyait déjà UTF-8, il n'a pas reconnu la dernière colonne.
Un grand merci pour tout votre temps précieux.
Daniel
Craige,
Mise à jour rapide.
J'ai découvert que si j'ouvrais manuellement le fichier csv et que je l'enregistrais au format "csv UTF-8", JMP reconnaîtrait "FlexSEM1000". Cependant, c'est une étape manuelle que je voudrais éliminer.
Daniel
Craige,
Je vais continuer à me brancher. J'ai essayé de joindre le document CSV au cas où quelqu'un pourrait le faire fonctionner, mais le site n'autorisait pas le téléchargement.
En attendant, je vais aller sur le programme qui a généré le fichier pour voir comment il est formaté. À l'origine, les données d'identification du système étaient lues à partir d'un fichier texte système (accompagné d'images provenant d'un SEM) qui était UTF16. Cependant, un script a été écrit pour passer en UTF8 et enregistrer dans un fichier csv.
JMP a examiné les deux types, mais sans succès.
Daniel
Merci Craige,
Selon la valeur CV " FlexSEM1000", quand je change cela en " FlexSEM ", JMP est capable de lire sans problèmes .
Je vais fouiller en utilisant vos suggestions.
Daniel