我做了一个简单的联系人应用程序,它可以帮助用户使用电子邮件和电话号码创建联系人。现在我尝试从表中添加大约 100 个联系人。因此,我需要能够读取每列的标题,并从文本文件中获取相应的数据,并将其提供给 xcode 中的函数。这些是我的文件 contacts.txt 中联系人表的标题:
Emp_ID Name Email Contact_Number
实现这一目标有哪些不同的方法?
我有一个表,其中的这些标题保存在文本文件 contacts.txt 中。不,数据库和 SQL。
这是我的 Contacts.txt 文件在 xcode 中的示例
\itap1\trowd \taflags1 \trgaph108\trleft-108 \trcbpat3 \tamart320 \tamarb320 \trmarr320 \trbrdrt\brdrs\brdrw20\brdrcf2 \trbrdrl\brdrs\brdrw20\brdrcf2 \trbrdrr\brdrs\brdrw20\brdrcf2
\clvertalc \clshdrawnil \clwWidth360\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx1728
\clvertalc \clshdrawnil \clwWidth1580\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx3456
\clvertalc \clshdrawnil \clwWidth3180\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx5184
\clvertalc \clshdrawnil \clwWidth6020\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx6912
\clvertalc \clshdrawnil \clwWidth3200\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx8640
\pard\intbl\itap1\pardeftab720\sl480
\f0\b\fs32 \cf0 #
\b0 \cell
\pard\intbl\itap1\pardeftab720\sl480
\b \cf0 Emp_ID
\b0 \cell
\pard\intbl\itap1\pardeftab720\sl480
\b \cf0 Name
\b0 \cell
\pard\intbl\itap1\pardeftab720\sl480
\b \cf0 Email
\b0 \cell
\pard\intbl\itap1\pardeftab720\sl480
\b \cf0 Contact_Number
\b0 \cell \row
\itap1\trowd \taflags1 \trgaph108\trleft-108 \trcbpat3 \tamart320 \tamarb320 \trmarr320 \trbrdrl\brdrs\brdrw20\brdrcf2 \trbrdrr\brdrs\brdrw20\brdrcf2
\clvertalc \clshdrawnil \clwWidth360\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx1728
\clvertalc \clshdrawnil \clwWidth1580\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx3456
\clvertalc \clshdrawnil \clwWidth3180\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx5184
\clvertalc \clshdrawnil \clwWidth6020\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx6912
\clvertalc \clshdrawnil \clwWidth3200\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx8640
\pard\intbl\itap1\pardeftab720\sl480
\cf0 1\cell
\pard\intbl\itap1\pardeftab720\sl480
\cf0 Emp1000\cell
\pard\intbl\itap1\pardeftab720\sl480
\cf0 Name1\cell
\pard\intbl\itap1\pardeftab720\sl480
\cf0 name1@gmail.com\cell
\pard\intbl\itap1\pardeftab720\sl480
\cf0 9874563210\cell \row
\itap1\trowd \taflags1 \trgaph108\trleft-108 \trcbpat3 \tamart320 \tamarb320 \trmarr320 \trbrdrl\brdrs\brdrw20\brdrcf2 \trbrdrr\brdrs\brdrw20\brdrcf2
\clvertalc \clshdrawnil \clwWidth360\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx1728
\clvertalc \clshdrawnil \clwWidth1580\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx3456
\clvertalc \clshdrawnil \clwWidth3180\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx5184
\clvertalc \clshdrawnil \clwWidth6020\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx6912
\clvertalc \clshdrawnil \clwWidth3200\clftsWidth3 \clbrdrt\brdrs\brdrw20\brdrcf2 \clbrdrl\brdrs\brdrw20\brdrcf2 \clbrdrb\brdrs\brdrw20\brdrcf2 \clbrdrr\brdrs\brdrw20\brdrcf2 \clpadt60 \clpadl60 \clpadb60 \clpadr60 \gaph\cellx8640
\pard\intbl\itap1\pardeftab720\sl480
\cf0 2\cell
\pard\intbl\itap1\pardeftab720\sl480
\cf0 Emp1010\cell
\pard\intbl\itap1\pardeftab720\sl480
\cf0 Name2\cell
\pard\intbl\itap1\pardeftab720\sl480
\cf0 name2@gmail.com\cell
\pard\intbl\itap1\pardeftab720\sl480
\cf0 9875463210\cell \row
依此类推,列表继续为名称 3 - 100
预期输出
数组={(Emp1000,Name1,name1@gmail.com,9874563210),(Emp1010,Name2,name2@gmail.com,9875463210)}
这是一段代码,通过它我可以获取任意两个字符串之间的数据
-(NSString*)inString:(NSString*)getStringBetweenString1:(NSString*)sub1 String2:(NSString*)sub2 {
NSLog(@"%@",start);
NSRange startRange = [orgstr rangeOfString:start];
if (startRange.location != NSNotFound) {
NSRange targetRange;
targetRange.location = startRange.location + startRange.length;
targetRange.length = [orgstr length] - targetRange.location;
NSRange endRange = [orgstr rangeOfString:end options:0 range:targetRange];
if (endRange.location != NSNotFound) {
targetRange.length = endRange.location - targetRange.location;
return [orgstr substringWithRange:targetRange];
}
}
return nil;
}
最佳答案
您可以使用 NSScanner
解析文件,提取每一列并将每条信息保存到新的联系人对象中。您可以使用 while
循环来迭代每一行,并在扫描器完成当前行的所有列时创建新对象。
参见 this doc有关使用 NSScanner
的指南。
关于ios - 如何在 Xcode 中获取表格主题的详细信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18141030/