Blog > Komentarze do wpisu
Programowanie na iPhone - Importowanie plików CSV z email-a do aplikacji iOS

Jakiś czas temu opisałem sposób importowania plików CSV do aplikacji iOS (iPhone, iPod, iPad) poniższy screencast, krok po kroku, przedstawia opisane tam rozwiązanie.



Jest to moje pierwsze podejście do screencastów i mam nadzieje, że prezentowany materiał (wyświetlany kod źródłowy) jest wystarczająco czytelny. Zalecam oglądanie w jakości HD :)

 


Post, w języku angielskim, opisujący prezentowane rozwiązanie znajduje się tutaj:


Część 1: Importing CSV data file into an iOS app via email attachment - part 1 [English]
Część 2: Importing CSV data file into an iOS app via email attachment - Part 2 [English]



Pełny kod źródłowy prezentowanego projektu możecie pobrać z repozytorium GitHub.



Zapraszam.


środa, 08 sierpnia 2012, m0rt1m3r

Related Posts Plugin for WordPress, Blogger...

Polecane wpisy

Komentarze
Gość: karol, *.neoplus.adsl.tpnet.pl
2012/08/11 11:51:31
Witam. Bardzo fajny tutorial.
Jednak chciałbym się dowiedzieć co zrobić aby eksportować wpisy (np z bazy core data) do pliku csv a następnie wysłać go mailem.

Mógłbyś mi jakoś pomóc?
-
2012/08/12 17:19:31
1. Utwórz w katalogu temp aplikacji plik z danymi CSV na przykład tak jak pokazuje poniższy przykład (twoje dane są w tabeli data, niestety kod w komentarzu nie wygląda najlepiej):

NSString *csvRow;
NSString *fileName = @"csvdatafile.csv";
NSMutableArray *data;

if(![[NSFileManager defaultManager] fileExistsAtPath: [NSTemporaryDirectory() stringByAppendingPathComponent:fileName]]) {
[[NSFileManager defaultManager] createFileAtPath: [NSTemporaryDirectory() stringByAppendingPathComponent:fileName] contents:nil attributes:nil];
}
NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:[NSTemporaryDirectory() stringByAppendingPathComponent:fileName]];

for (id object in data) {
CVSDataObject *c = (CSVDataObject *)object;
csvRow = [NSString stringWithFormat:@"\"%@\",\"%@\", ... \"%@\"\n", c.data1, c.data2, ... c.dataN];
[handle writeData:[csvRow dataUsingEncoding:NSUnicodeStringEncoding]];
}
[handle synchronizeFile];
[handle closeFile];

Aby nie zaśmiecać telefonu użytkownika, pamiętaj o usuwaniu (od czasu do czasu) utworzonych przez siebie plików tymczasowych.

2. Do wysłania pliku jako załącznika możesz wykorzystać framework Message UI. Dokumentacje znajdziesz tutaj (jest tez tam przykładowy kod):

developer.apple.com/library/ios/#documentation/MessageUI/Reference/MessageUI_Framework_Reference/_index.html

Aby dodać załącznik przyjrzyj się metodzie klasy MFMailComposeViewController

- (void)addAttachmentData:(NSData*)attachment mimeType:(NSString*)mimeType fileName:(NSString*)filename


Możesz też zajrzeć do mojego poprzedniego wpisu. Opisuje on klasę upraszczającą wykorzystanie frameworku Message UI. Obsługę załącznika musiałbyś do niej dodać.

notatkiprogramisty.blox.pl/2012/01/Wysylanie-maili-z-aplikacji-iPhone.html
-
Gość: Janko, *.opera-mini.net
2015/01/13 12:03:48
Mam prosbe o porade. Nie mam komp., internet mam w telefonie. Na pewnej stronie chce wyslac plik zawierajacy spis liczb (numery tel.). Ma to byc plik csv. Nie moglem znalec konwertera online. Czy da sie edytowac plik doc lub txt tak, aby zostal przyjety jako csv ? Probowalem uzywac przecinkow, cudzysl. i kazdy nr pisalem w oddzielnej linii, ale plik nie zostal odebrany. Moze jakies znaki trzeba uzyc ? Bede wdzieczny za porade
-
2015/01/14 08:59:17
Generalnie pliki CSV sa to pliki tekstowe. O ile wiem nie mozez zapisac pliki Worda jako CSV, mozesz za to wyeksportowac wartosci z pliku excela, kazda wartosc (kolumna) bedzie w osobnej "komorce" pliku CSV a kazdy wiersz Excel'a osobnym wierszem pliku CSV. Przykladowy plik CSV wyglada nastepujaco:

23723878,23,2323,5,Dom
23878,,12323,5,Ogrod
1289237,22,1,"Piwnica, pod piwnica"

Wiersz 1szy jest badzo postawowy, przechowuje 4 numery i ciag znakow, w wierszu drugim pominalem jeden numer, ale przecinek zostawilem aby reprezentowal brakujaca wartosc, w wierszy trzecim przykladowy ciag znakow sam w sobie zawiera przecinek, w takim wypadku ciag znakow musisz zawrzec w codzyslowy badz apostrowy, zaleznie od tego czego spodziewa sie aplikacja do ktorej importujesz dane.

Mam nadzieje, ze to troche pomoglo.




PowerBuilder Tetris
D - Tetris



Programowanie iOS

C# ToolBox

SQL / TSQL / PLSQL ToolBox

Linux / Unix ToolBox





Zaprzyjaznione Strony

Sprite Bandits

Cake Time