|
|
IOSÆ»¹û½Å±¾TXTÎļþ¶ÁдH5ÈÕÖ¾´òÓ¡ÍêÕûʾÀý
- // iOS TXTÎļþ¶ÁдÍêÕûʾÀý
- // չʾ¶àÖÖ¶ÁÈ¡ºÍ±£´æTXTÎļþµÄ·½·¨
- // Óë H5 ½çÃæ¼¯³É,ͨ¹ý LogBridge Êä³öÈÕÖ¾
- // ============================================
- // »ù´¡Îļþ·¾¶£¨iOSϵͳ·¾¶£©
- // ============================================
- const basePath = project.getResourcesPath() + "/";
- const testFile = basePath + "test.txt";
- const dataFile = basePath + "data.txt";
- const logFile = basePath + "log.txt";
- const jsonFile = basePath + "config.json";
- // ============================================
- // ʾÀý1: »ù´¡Ð´ÈëºÍ¶ÁÈ¡
- // ============================================
- function basicReadWrite() {
- printl("=== ʾÀý1: »ù´¡Ð´ÈëºÍ¶ÁÈ¡ ===");
-
- // дÈëÎı¾(¸²¸Çģʽ,false±íʾ¸²¸Ç)
- txt.writeFile(testFile, "Hello AIWROK!\nÕâÊǵÚÒ»ÐÐ\nÕâÊǵڶþÐÐ", false);
- printl("✓ дÈë³É¹¦");
-
- // ¶ÁÈ¡Îı¾
- let content = txt.readFile(testFile);
- if (content && content.length > 0) {
- printl("✓ ¶ÁÈ¡³É¹¦,ÄÚÈݳ¤¶È: " + content.length + " ×Ö·û");
- printl("¶ÁÈ¡ÄÚÈÝ:\n" + content);
- } else {
- printl("✗ ¶Áȡʧ°Ü»òÄÚÈÝΪ¿Õ");
- }
-
- return content;
- }
- // ============================================
- // ʾÀý2: ×·¼ÓģʽдÈë
- // ============================================
- function appendMode() {
- printl("\n=== ʾÀý2: ×·¼ÓģʽдÈë ===");
-
- // ÏÈдÈë³õʼÄÚÈÝ(¸²¸Çģʽ)
- txt.writeFile(logFile, "ÈÕÖ¾¿ªÊ¼\n", false);
- printl("✓ ³õʼÈÕÖ¾ÒÑдÈë");
-
- // ×·¼Ó¶àÌõÈÕÖ¾(µÚÈý¸ö²ÎÊýtrue±íʾ׷¼Ó)
- txt.writeFile(logFile, "2024-01-01 µÚÒ»ÌõÈÕÖ¾\n", true);
- txt.writeFile(logFile, "2024-01-02 µÚ¶þÌõÈÕÖ¾\n", true);
- txt.writeFile(logFile, "2024-01-03 µÚÈýÌõÈÕÖ¾\n", true);
- printl("✓ ×·¼Ó3ÌõÈÕÖ¾³É¹¦");
-
- // ¶Áȡȫ²¿ÈÕÖ¾
- let logs = txt.readFile(logFile);
- if (logs && logs.length > 0) {
- printl("✓ ¶ÁÈ¡³É¹¦,ÈÕÖ¾×ܳ¤¶È: " + logs.length + " ×Ö·û");
- printl("ÈÕÖ¾ÄÚÈÝ:\n" + logs);
- } else {
- printl(" ¶Áȡʧ°Ü»òÈÕ־Ϊ¿Õ");
- }
-
- return logs;
- }
- // ============================================
- // ʾÀý3: ¸²¸ÇģʽдÈë
- // ============================================
- function overwriteMode() {
- printl("\n=== ʾÀý3: ¸²¸ÇģʽдÈë ===");
-
- // µÚÒ»´ÎдÈë
- txt.writeFile(dataFile, "ÔʼÊý¾Ý", false);
- let firstRead = txt.readFile(dataFile);
- printl("✓ µÚÒ»´ÎдÈë³É¹¦,¶ÁÈ¡½á¹û: " + firstRead);
-
- // ¸²¸ÇдÈë
- txt.writeFile(dataFile, "ÐÂÊý¾Ý¸²¸ÇÁ˾ÉÊý¾Ý", false);
- let secondRead = txt.readFile(dataFile);
- printl("✓ ¸²¸ÇдÈë³É¹¦,¶ÁÈ¡½á¹û: " + secondRead);
-
- return txt.readFile(dataFile);
- }
- // ============================================
- // ʾÀý4: ¶ÁÈ¡²¢´¦Àí¶àÐÐÎı¾
- // ============================================
- function processMultiLine() {
- printl("\n=== ʾÀý4: ¶ÁÈ¡²¢´¦Àí¶àÐÐÎı¾ ===");
-
- // ´´½¨¶àÐÐÊý¾Ý(¸²¸Çģʽ)
- let multiLineData = "ÐÕÃû,ÄêÁä,³ÇÊÐ\nÕÅÈý,25,±±¾©\nÀîËÄ,30,ÉϺ£\nÍõÎå,28,¹ãÖÝ";
- txt.writeFile(dataFile, multiLineData, false);
- printl("✓ CSVÊý¾ÝдÈë³É¹¦");
-
- // ¶ÁÈ¡²¢·Ö¸îÐÐ
- let content = txt.readFile(dataFile);
- if (!content || content.length === 0) {
- printl("✗ ¶Áȡʧ°Ü");
- return [];
- }
- printl("✓ ¶ÁÈ¡³É¹¦,ÄÚÈݳ¤¶È: " + content.length + " ×Ö·û");
- let lines = content.split("\n");
-
- printl("×ÜÐÐÊý: " + lines.length);
- for (let i = 0; i < lines.length; i++) {
- printl("µÚ" + (i+1) + "ÐÐ: " + lines[i]);
- }
-
- // ½âÎöCSV¸ñʽ
- if (lines.length > 1) {
- let headers = lines[0].split(",");
- printl("±íÍ·: " + headers.join(" | "));
-
- for (let i = 1; i < lines.length; i++) {
- let fields = lines[i].split(",");
- if (fields.length >= 3) {
- printl("¼Ç¼: ÐÕÃû=" + fields[0] + ", ÄêÁä=" + fields[1] + ", ³ÇÊÐ=" + fields[2]);
- }
- }
- }
-
- return lines;
- }
- // ============================================
- // ʾÀý5: JSONÊý¾Ý´æ´¢ºÍ¶ÁÈ¡
- // ============================================
- function jsonStorage() {
- printl("\n=== ʾÀý5: JSONÊý¾Ý´æ´¢ºÍ¶ÁÈ¡ ===");
-
- // ´´½¨ÅäÖöÔÏó
- let config = {
- username: "admin",
- password: "123456",
- settings: {
- theme: "dark",
- language: "zh-CN",
- autoSave: true
- },
- lastLogin: new Date().getTime()
- };
-
- // ת»»ÎªJSON×Ö·û´®²¢±£´æ(¸²¸Çģʽ)
- let jsonString = JSON.stringify(config, null, 2);
- txt.writeFile(jsonFile, jsonString, false);
- printl("✓ JSONÅäÖÃÒѱ£´æµ½: " + jsonFile);
-
- // ¶ÁÈ¡²¢½âÎöJSON
- let savedJson = txt.readFile(jsonFile);
- if (!savedJson || savedJson.length === 0) {
- printl("✗ ¶Áȡʧ°Ü");
- return null;
- }
- printl("✓ ¶ÁÈ¡³É¹¦,JSON³¤¶È: " + savedJson.length + " ×Ö·û");
-
- try {
- let parsedConfig = JSON.parse(savedJson);
- printl("✓ JSON½âÎö³É¹¦");
- printl("Óû§Ãû: " + parsedConfig.username);
- printl("Ö÷Ìâ: " + parsedConfig.settings.theme);
- printl("ÓïÑÔ: " + parsedConfig.settings.language);
- printl("×Ô¶¯±£´æ: " + parsedConfig.settings.autoSave);
- return parsedConfig;
- } catch (e) {
- printl("✗ JSON½âÎöʧ°Ü: " + e);
- printl("ÔʼÄÚÈÝ: " + savedJson);
- return null;
- }
- }
- // ============================================
- // ʾÀý6: ÁбíÊý¾Ý´æ´¢
- // ============================================
- function listStorage() {
- printl("\n=== ʾÀý6: ÁбíÊý¾Ý´æ´¢ ===");
-
- // ±£´æÈÎÎñÁбí
- let tasks = [
- "Íê³ÉÏîÄ¿Îĵµ",
- "ÐÞ¸´bug #123",
- "´úÂëÉó²é",
- "²¿Êðµ½Éú²ú»·¾³"
- ];
-
- // ÿÐÐÒ»¸öÈÎÎñ(¸²¸Çģʽ)
- let taskContent = tasks.join("\n");
- txt.writeFile(basePath + "tasks.txt", taskContent, false);
- printl("✓ ÈÎÎñÁбíÒѱ£´æ,¹²" + tasks.length + "¸öÈÎÎñ");
-
- // ¶ÁÈ¡ÈÎÎñÁбí
- let savedTasks = txt.readFile(basePath + "tasks.txt");
- if (!savedTasks || savedTasks.length === 0) {
- printl("✗ ¶Áȡʧ°Ü");
- return [];
- }
- printl("✓ ¶ÁÈ¡³É¹¦");
- let taskArray = savedTasks.split("\n").filter(function(t) { return t.trim() !== ""; });
-
- printl("¶ÁÈ¡µ½µÄÈÎÎñ:");
- for (let i = 0; i < taskArray.length; i++) {
- printl(" " + (i+1) + ". " + taskArray[i]);
- }
-
- return taskArray;
- }
- // ============================================
- // ʾÀý7: ¼üÖµ¶ÔÅäÖô洢
- // ============================================
- function keyValueStorage() {
- printl("\n=== ʾÀý7: ¼üÖµ¶ÔÅäÖô洢 ===");
-
- // ±£´æ¼üÖµ¶ÔÅäÖÃ
- let configMap = {
- "server_url": "https://api.example.com",
- "timeout": "30000",
- "retry_count": "3",
- "debug_mode": "false"
- };
-
- // ¸ñʽ: key=value(¸²¸Çģʽ)
- let configLines = [];
- for (let key in configMap) {
- configLines.push(key + "=" + configMap[key]);
- }
- txt.writeFile(basePath + "settings.ini", configLines.join("\n"), false);
- printl("✓ ÅäÖÃÒѱ£´æµ½: " + basePath + "settings.ini");
-
- // ¶ÁÈ¡²¢½âÎöÅäÖÃ
- let configContent = txt.readFile(basePath + "settings.ini");
- if (!configContent || configContent.length === 0) {
- printl("✗ ¶Áȡʧ°Ü");
- return {};
- }
- printl("✓ ¶ÁÈ¡³É¹¦");
- let configLines_read = configContent.split("\n");
- let parsedConfig = {};
-
- for (let i = 0; i < configLines_read.length; i++) {
- let line = configLines_read[i].trim();
- if (line && line.indexOf("=") > -1) {
- let parts = line.split("=");
- if (parts.length >= 2) {
- let key = parts[0].trim();
- let value = parts.slice(1).join("=").trim();
- parsedConfig[key] = value;
- }
- }
- }
-
- printl("½âÎöµÄÅäÖÃ:");
- for (let key in parsedConfig) {
- printl(" " + key + " = " + parsedConfig[key]);
- }
-
- return parsedConfig;
- }
- // ============================================
- // ʾÀý8: ´óÎļþ·Ö¿é¶Áд
- // ============================================
- function chunkedReadWrite() {
- printl("\n=== ʾÀý8: ´óÎļþ·Ö¿é¶Áд ===");
-
- // Éú³É´óÁ¿Êý¾Ý
- let largeData = "";
- for (let i = 1; i <= 100; i++) {
- largeData += "µÚ" + i + "ÐÐÊý¾Ý: Lorem ipsum dolor sit amet\n";
- }
-
- // дÈë´óÎļþ(¸²¸Çģʽ)
- txt.writeFile(basePath + "large.txt", largeData, false);
- printl("✓ ´óÎļþÒÑдÈë,¹²100ÐÐ");
-
- // ¶ÁÈ¡²¢Í³¼Æ
- let content = txt.readFile(basePath + "large.txt");
- if (!content || content.length === 0) {
- printl("✗ ¶Áȡʧ°Ü");
- return 0;
- }
- printl("✓ ¶ÁÈ¡³É¹¦");
- let lines = content.split("\n").filter(function(l) { return l.trim() !== ""; });
- printl("¶ÁÈ¡µ½ " + lines.length + " ÐÐÊý¾Ý");
-
- // ÏÔʾǰ5Ðкͺó5ÐÐ
- printl("ǰ5ÐÐ:");
- for (let i = 0; i < Math.min(5, lines.length); i++) {
- printl(" " + lines[i]);
- }
-
- printl("ºó5ÐÐ:");
- for (let i = Math.max(0, lines.length - 5); i < lines.length; i++) {
- printl(" " + lines[i]);
- }
-
- return lines.length;
- }
- // ============================================
- // ʾÀý9: ´øÊ±¼ä´ÁµÄÈÕ־ϵͳ
- // ============================================
- function timestampLog() {
- printl("\n=== ʾÀý9: ´øÊ±¼ä´ÁµÄÈÕ־ϵͳ ===");
-
- let logFile2 = basePath + "timestamp_log.txt";
-
- // дÈë´øÊ±¼ä´ÁµÄÈÕÖ¾
- function addLog(message) {
- let now = new Date();
- let timestamp = now.getFullYear() + "-" +
- String(now.getMonth() + 1).padStart(2, '0') + "-" +
- String(now.getDate()).padStart(2, '0') + " " +
- String(now.getHours()).padStart(2, '0') + ":" +
- String(now.getMinutes()).padStart(2, '0') + ":" +
- String(now.getSeconds()).padStart(2, '0');
- txt.writeFile(logFile2, "[" + timestamp + "] " + message + "\n", true);
- }
-
- // Ìí¼Ó¶àÌõÈÕÖ¾
- addLog("ϵͳÆô¶¯");
- addLog("¼ÓÔØÅäÖÃÍê³É");
- addLog("Á¬½ÓÊý¾Ý¿â³É¹¦");
- addLog("¿ªÊ¼´¦ÀíÈÎÎñ");
- addLog("ÈÎÎñ´¦ÀíÍê³É");
- printl("✓ 5ÌõÈÕÖ¾ÒÑдÈë");
-
- // ¶ÁÈ¡ËùÓÐÈÕÖ¾
- let logs = txt.readFile(logFile2);
- if (!logs || logs.length === 0) {
- printl("✗ ¶Áȡʧ°Ü");
- return [];
- }
- printl("✓ ¶ÁÈ¡³É¹¦");
-
- // ͳ¼ÆÈÕÖ¾ÊýÁ¿
- let logLines = logs.split("\n").filter(function(l) { return l.trim() !== ""; });
- printl("¹² " + logLines.length + " ÌõÈÕÖ¾");
-
- return logLines;
- }
- // ============================================
- // ʾÀý10: Êý¾Ý±¸·ÝºÍ»Ö¸´
- // ============================================
- function backupAndRestore() {
- printl("\n=== ʾÀý10: Êý¾Ý±¸·ÝºÍ»Ö¸´ ===");
-
- let originalFile = basePath + "original.txt";
- let backupFile = basePath + "backup.txt";
-
- // ´´½¨ÔʼÊý¾Ý(¸²¸Çģʽ)
- let originalData = "ÖØÒªÊý¾Ý1\nÖØÒªÊý¾Ý2\nÖØÒªÊý¾Ý3";
- txt.writeFile(originalFile, originalData, false);
- printl("✓ ÔʼÊý¾ÝÒÑ´´½¨");
-
- // ±¸·ÝÊý¾Ý(¸´ÖÆÎļþÄÚÈÝ,¸²¸Çģʽ)
- let backupData = txt.readFile(originalFile);
- if (!backupData || backupData.length === 0) {
- printl("✗ ¶ÁÈ¡ÔʼÊý¾Ýʧ°Ü");
- return "";
- }
- txt.writeFile(backupFile, backupData, false);
- printl("✓ Êý¾ÝÒѱ¸·Ý");
-
- // ÐÞ¸ÄÔʼÊý¾Ý
- txt.writeFile(originalFile, "ÐÂÊý¾Ý1\nÐÂÊý¾Ý2", false);
- printl("✓ ÔʼÊý¾ÝÒÑÐÞ¸Ä: " + txt.readFile(originalFile));
-
- // ´Ó±¸·Ý»Ö¸´
- let restoredData = txt.readFile(backupFile);
- if (!restoredData || restoredData.length === 0) {
- printl(" ¶ÁÈ¡±¸·ÝÊý¾Ýʧ°Ü");
- return "";
- }
- txt.writeFile(originalFile, restoredData, false);
- printl("✓ Êý¾ÝÒѻָ´: " + txt.readFile(originalFile));
-
- return restoredData;
- }
- // ============================================
- // ʾÀý11: Ìõ¼þ¶Áд£¨¼ì²éÎļþÊÇ·ñ´æÔÚ£©
- // ============================================
- function conditionalReadWrite() {
- printl("\n=== ʾÀý11: Ìõ¼þ¶Áд ===");
-
- let checkFile = basePath + "check.txt";
-
- // ³¢ÊÔ¶ÁÈ¡Îļþ,Èç¹û²»´æÔÚÔò´´½¨
- let content = txt.readFile(checkFile);
-
- if (!content || content === "") {
- printl("✓ Îļþ²»´æÔÚ»òΪ¿Õ,´´½¨ÐÂÎļþ");
- txt.writeFile(checkFile, "³õʼ»¯Êý¾Ý\n´´½¨Ê±¼ä: " + new Date().toString(), true);
- content = txt.readFile(checkFile);
- printl("✓ Îļþ´´½¨³É¹¦");
- } else {
- printl("✓ ÎļþÒÑ´æÔÚ,×·¼ÓÐÂÊý¾Ý");
- txt.writeFile(checkFile, "\n¸üÐÂʱ¼ä: " + new Date().toString(), true);
- content = txt.readFile(checkFile);
- printl("✓ Êý¾Ý×·¼Ó³É¹¦");
- }
-
- printl("µ±Ç°ÄÚÈÝ:\n" + content);
- return content;
- }
- // ============================================
- // ʾÀý12: ¶àÓû§Êý¾Ý´æ´¢
- // ============================================
- function multiUserStorage() {
- printl("\n=== ʾÀý12: ¶àÓû§Êý¾Ý´æ´¢ ===");
-
- let usersFile = basePath + "users.txt";
-
- // Óû§Êý¾Ý½á¹¹: Óû§Ãû|ÃÜÂë|ÓÊÏä|×¢²áʱ¼ä(¸²¸Çģʽ)
- let users = [
- "user1|pass123|user1@example.com|2024-01-01",
- "user2|pass456|user2@example.com|2024-01-02",
- "user3|pass789|user3@example.com|2024-01-03"
- ];
-
- // ±£´æÓû§Êý¾Ý(¸²¸Çģʽ)
- txt.writeFile(usersFile, users.join("\n"), false);
- printl("✓ Óû§Êý¾ÝÒѱ£´æ,¹²" + users.length + "¸öÓû§");
-
- // ¶ÁÈ¡²¢²éѯÓû§
- let userContent = txt.readFile(usersFile);
- if (!userContent || userContent.length === 0) {
- printl("✗ ¶Áȡʧ°Ü");
- return [];
- }
- printl("✓ ¶ÁÈ¡³É¹¦");
- let userLines = userContent.split("\n");
-
- printl("Óû§Áбí:");
- for (let i = 0; i < userLines.length; i++) {
- let userData = userLines[i].split("|");
- if (userData.length >= 4) {
- printl(" Óû§" + (i+1) + ": Óû§Ãû=" + userData[0] + ", ÓÊÏä=" + userData[2]);
- }
- }
-
- // ²éÕÒÌØ¶¨Óû§
- let searchUsername = "user2";
- for (let i = 0; i < userLines.length; i++) {
- let userData = userLines[i].split("|");
- if (userData[0] === searchUsername) {
- printl("ÕÒµ½Óû§: " + searchUsername + ", ÓÊÏä: " + userData[2]);
- break;
- }
- }
-
- return userLines;
- }
- // ============================================
- // Ö´ÐÐËùÓÐʾÀý
- // ============================================
- function runAllExamples() {
- printl("========================================");
- printl("iOS TXTÎļþ¶ÁдÍêÕûʾÀý¿ªÊ¼");
- printl("========================================\n");
- printl("📁 Îļþ±£´æÂ·¾¶: " + basePath);
- printl("💡 Ìáʾ: ¿ÉÒÔÔÚ AIWROK µÄÎļþ¹ÜÀíÆ÷Öв鿴ÕâЩÎļþ");
- printl(" ·¾¶: " + basePath);
- printl(" »òͨ¹ýÏîÄ¿×ÊԴĿ¼·ÃÎÊ\n");
-
- try {
- printl("⏱️ 3Ãëºó¿ªÊ¼Ö´ÐÐʾÀý...\n");
- sleep.second(Ãë=3);
-
- basicReadWrite();
- sleep.second(Ãë=2);
-
- appendMode();
- sleep.second(Ãë=2);
-
- overwriteMode();
- sleep.second(Ãë=2);
-
- processMultiLine();
- sleep.second(Ãë=2);
-
- jsonStorage();
- sleep.second(Ãë=2);
-
- listStorage();
- sleep.second(Ãë=2);
-
- keyValueStorage();
- sleep.second(Ãë=2);
-
- chunkedReadWrite();
- sleep.second(Ãë=2);
-
- timestampLog();
- sleep.second(Ãë=2);
-
- backupAndRestore();
- sleep.second(Ãë=2);
-
- conditionalReadWrite();
- sleep.second(Ãë=2);
-
- multiUserStorage();
-
- printl("\n========================================");
- printl("✅ ËùÓÐʾÀýÖ´ÐÐÍê³É£¡");
- printl("========================================");
- } catch (e) {
- printl("✗ Ö´Ðгö´í: " + e);
- }
- }
¸´ÖÆ´úÂë
|
|