Excel Mac - Alcuni file txt non possono essere aperti / importati ("Grayed out")

3

Un po 'strano. Sto usando Excel per crunchare alcuni dati che ho in diversi file .txt.

Quando sto cercando di importarli tramite Data > Get External Data > Import Text File :

Comehofattomoltevolteinpassato,ottengolafinestradidialogo"Scegli un file", ma quando sfoglio la cartella, solo un paio di file sono "selezionabili"; gli altri sono "in grigio":

Noncisonodifferenzetraifilechepossovederechegiustificherebberoladifferenza.L'unica"logica" è che il file "source" (chiamiamolo 20150728 - SOURCE.TXT ) arriva via email da una macchina Windows, e gli altri due file bloccati ( 20150728 - Source Fragment 3.TXT e 20150728 - Source Fragment 3 copy.TXT ) sono una copia della Sorgente in cui ho cancellato alcune righe e una seconda copia del file risultante, mentre quelle non bloccate hanno iniziato come Sorgente in cui ho cancellato le righe, e poi ho fatto un "Salva come" in TextWrangler. ..

I posso aggirare il problema semplicemente copiando il contenuto dei file "in grigio" in un nuovo documento in TextWrangler e salvandolo, ma mi piacerebbe capire il motivo di questo comportamento.

Fare un file nei file in questione mostra che sono simili se non equivalgono:

Mac:samples jjarava$ file 201507*txt
20150728 - Source Fragment 3.TXT:      ASCII text
20150728 - Source Framgent 1.TXT:      ASCII text
20150728 - Source Fragment 1.TXT:      ASCII text
20150728 - Source.TXT:                 ASCII text, with CRLF line terminators
20150728 - Source Fragment 3 copy.TXT: ASCII text

Sono un po '"bloccato" su quale potrebbe essere il problema. Ho la sensazione che sia una di quelle "stranezze di Mac oscure" che sono molto difficili da spiegare.

EDIT : come per i commenti riportati di seguito da @ user3439894 e altri, ho esaminato gli attributi estesi dei file per vedere se questo fornisce un suggerimento.

L'output di ls -l@ per i file ci dà:

-rw-r--r--@ 1 jjarava  staff   7652 Aug  3 13:58 20150728 - Source Fragment 3 (BAD).TXT
    com.apple.FinderInfo       32 
    com.apple.TextEncoding     15 
    com.dropbox.attributes     83 
-rw-r--r--@ 1 jjarava  staff   6570 Aug  3 13:58 20150728 - Source Fragment 1 (Good).TXT
    com.apple.FinderInfo       32 
    com.apple.TextEncoding     15 
    com.dropbox.attributes     83 
-rw-r--r--@ 1 jjarava  staff   6616 Aug  3 13:58 20150728 - Source Fragment 2 (Good).TXT
    com.apple.FinderInfo       32 
    com.apple.TextEncoding     15 
    com.dropbox.attributes     83 
-rw-r--r--@ 1 jjarava  staff  21138 Aug  3 13:58 20150728 - Source (BAD).TXT
    com.apple.FinderInfo       32 
    com.dropbox.attributes     83 

Ancora una volta, vedo che uno dei file cattivi (Source) manca apparentemente dell'attributo com.apple.TextEncoding - ma l'altro file "non funzionante" ha l'attributo ... Nel caso in cui i valori siano diversi per i file buoni e cattivi, controlliamo:

Mac:samples jjarava$ xattr -p com.apple.TextEncoding 201507*txt
20150728 - Source Fragment 3 (BAD).TXT: UTF-8;134217984
Source Fragment 1 (Good).TXT: UTF-8;134217984
Source Fragment 2 (Good).TXT: UTF-8;134217984
xattr: 20150728 - Source (BAD).TXT: No such xattr: com.apple.TextEncoding

Quindi non sembra che sia il trucco ...

    
posta JJarava 07.08.2015 - 14:16
fonte

2 risposte

3

I pensa Ho una risposta.

Cerca a google in giro Ho trovato riferimenti a problemi "ombreggiati" e menzioni dell'attributo creator del file.

Quindi un veloce Google per " marchio creatore di file osx " mi ha indirizzato a SetFile e suo fratello GetFileInfo .

Esecuzione di un rapido GetFileInfo sui file che ottengo:

Mac:samples jjarava$ for i in 201507*.TXT; do getfileinfo "$i"; echo .; done
file: "/path/to/samples/20150728 - Source Fragment 3 (BAD).TXT"
type: "????"
creator: "????"
attributes: avbstclinmedz
created: 08/03/2015 13:58:18
modified: 08/03/2015 13:58:18
.
file: "/path/to/samples/20150728 - Source Framgent 1 (Good).TXT"
type: "TEXT"
creator: "
Mac:samples jjarava$ setfile -t TEXT "20150728 - Source Fragment 3 copy (BAD).TXT"
Mac:samples jjarava$ getfileinfo "20150728 - Source Fragment 3 copy (BAD).TXT"
file: "/path/to/samples/20150728 - Source Fragment 3 copy (BAD).TXT"
type: "TEXT"
creator: "????"
attributes: avbstclinmedz
created: 08/03/2015 13:58:18
modified: 08/03/2015 13:58:18
Mac:samples jjarava$ for i in 201507*.TXT; do getfileinfo "$i"; echo .; done
file: "/path/to/samples/20150728 - Source Fragment 3 (BAD).TXT"
type: "????"
creator: "????"
attributes: avbstclinmedz
created: 08/03/2015 13:58:18
modified: 08/03/2015 13:58:18
.
file: "/path/to/samples/20150728 - Source Framgent 1 (Good).TXT"
type: "TEXT"
creator: "
Mac:samples jjarava$ setfile -t TEXT "20150728 - Source Fragment 3 copy (BAD).TXT"
Mac:samples jjarava$ getfileinfo "20150728 - Source Fragment 3 copy (BAD).TXT"
file: "/path/to/samples/20150728 - Source Fragment 3 copy (BAD).TXT"
type: "TEXT"
creator: "????"
attributes: avbstclinmedz
created: 08/03/2015 13:58:18
modified: 08/03/2015 13:58:18
%pre%%pre%%pre%" attributes: avbstclinmedz created: 08/03/2015 13:58:18 modified: 08/03/2015 13:58:18 . file: "/path/to/samples/20150728 - Source Framgent 2 (Good).TXT" type: "TEXT" creator: "%pre%%pre%%pre%%pre%" attributes: avbstclinmedz created: 08/03/2015 13:58:18 modified: 08/03/2015 13:58:18 . file: "/path/to/samples/20150728 - Source (BAD).TXT" type: "????" creator: "????" attributes: avbstclinmedz created: 08/03/2015 13:58:18 modified: 08/03/2015 13:58:18 . file: "/path/to/samples/20150728 - Source Fragment 3 copy (BAD).TXT" type: "????" creator: "????" attributes: avbstclinmedz created: 08/03/2015 13:58:18 modified: 08/03/2015 13:58:18 .
%pre%%pre%" attributes: avbstclinmedz created: 08/03/2015 13:58:18 modified: 08/03/2015 13:58:18 . file: "/path/to/samples/20150728 - Source Framgent 2 (Good).TXT" type: "TEXT" creator: "%pre%%pre%%pre%%pre%" attributes: avbstclinmedz created: 08/03/2015 13:58:18 modified: 08/03/2015 13:58:18 . file: "/path/to/samples/20150728 - Source (BAD).TXT" type: "????" creator: "????" attributes: avbstclinmedz created: 08/03/2015 13:58:18 modified: 08/03/2015 13:58:18 . file: "/path/to/samples/20150728 - Source Fragment 3 copy (BAD).TXT" type: "????" creator: "????" attributes: avbstclinmedz created: 08/03/2015 13:58:18 modified: 08/03/2015 13:58:18 .

Tutti i file "funzionanti" sono di type: "TEXT" , e tutti quelli "non funzionanti" sembrano non avere un "tipo" definito ...

In realtà, eseguendo quanto segue per modificare il file type :

%pre%

E quel file può ora essere selezionato nella finestra di dialogo "Apri" in Excel !!

La domanda è da dove viene il campo "tipo" e perché è impostato in alcuni file e non in altri, ma almeno c'è qualche "logica" nel problema !!

    
risposta data 07.08.2015 - 16:55
fonte
0

Come mostra lo screenshot, sono "quasi", ma non completamente uguali; il file originale è ASCII text, with CRLF line terminators mentre le copie e i frammenti creati sono ASCII text .

Alcune informazioni di base: se si pensa a una macchina da scrivere antica, a cose accadono, quando lo scrittore inizia una nuova riga: il foglio viene "inoltrato" una riga (= "avanzamento riga", LF) e il carrello viene spostato in la posizione più a sinistra (= "carriage return", CF). UNIX e OS X utilizzano un singolo carattere LF per eseguire entrambi i file di testo; D'altra parte, Windows utilizza due caratteri, un CR e un LF, alla fine di ogni riga.

Apparentemente, la funzione di importazione di Excel non può gestire il file di testo "formattato per Windows"; TextWrangler d'altra parte può e, quando si manipola il file e si salva una copia, lo salva automaticamente in "formato UNIX", convertendo i CRLF in LF. La soluzione consiste nel dire qualsiasi cosa crei quei file sulla macchina Windows, salvarli in formato UNIX o convertirli in formato UNIX in OS X, prima di poterli importare in Excel.

    
risposta data 07.08.2015 - 14:29
fonte

Leggi altre domande sui tag