2014-10-29 552 views
1

作为HTML的noob,我只知道C#中的一个解决方案。我只是想分开.txt的每一行,这样我就可以随意从它中拉出一些行,并在按下按钮时显示它们。另外,我不想使用提交按钮,而是想创建一个我自己风格的按钮的div,供用户按下。 (我知道该怎么做)并在点击时使用jQuery。如何从.txt文件中提取内容并在HTML中显示它的随机行?

我有点不确定如何描述我正在尝试做什么,但我希望我做得很好。

谢谢你们提前。

注意这是我用来创建一个相对简单的琐事游戏的C#。在一个单独的Trivia.cs中,我将对方的问题和答案分开(在.txt中,它们之间用*分隔)

但我不确定这是否有助于引导任何人。

static List GetTriviaList() { //从文件中获取内容。删除特殊字符“\ r”。拆分每一行。转换为列表。 List contents = File.ReadAllText(“trivia.txt”)。替换(“\ r”,“”).Split('\ n')。ToList();

 //Each item in list "contents" is now one line of the Trivia.txt document. 

     //make a new list to return all trivia questions 
     List<Trivia> returnList = new List<Trivia>(); 
     // TODO: go through each line in contents of the trivia file and make a trivia object. 
     //  add it to our return list. 
     // Example: Trivia newTrivia = new Trivia("what is my name?*question"); 
     //Return the full list of trivia questions 
     foreach (var item in contents) 
     { 
      Trivia bestTrivia = new Trivia(item); 
      returnList.Add(bestTrivia); 
     } 

     return returnList; 
    } 
+0

* .txt *文件是否已经存在于服务器上,还是用户在运行时提供的?此外,如果您可以提供您已经编写的JavaScript(以及可能还包含C#的适用段),那将有助于我们指引您朝着正确的方向发展。 – 2014-10-29 22:17:27

+0

.txt已经在服务器中。我很抱歉没有说清楚。就我已经写过的内容而言,只是我在试图假装我明白自己在做什么比我实际做得更多。至于C#,我会编辑正文。 – Logan 2014-10-29 22:26:34

+0

我相信它需要PHP,但我不太确定,因为我以前从未做过。 – Firedrake969 2014-10-29 22:32:13

回答

2

下面是一个正在运行的Plunker,展示了如何使用JavaScript(使用jQuery库)来实现它。

http://plnkr.co/edit/BUCZOKd0MFDsa2jdMkJs?p=preview

的基本过程如下:

  1. 从服务器
  2. 拆分它取文本文件分成行
  3. 当用户点击该按钮时,产生的阵列一个随机数
  4. 显示对应随机数的行

这里是JavaScript的了解(见上文Plunker完整的源):

var lines; 
var randomNumber; 
var lastRandomNumber; 

$(document.body).ready(function() { 

    // load the trivia from the server 
    $.ajax({ 
    url: 'trivia.txt' 
    }).done(function(content) { 

    // normalize the line breaks, then split into lines 
    lines = content.replace(/\r\n|\r/g, '\n').trim().split('\n'); 

    // only set up the click handler if there were lines found 
    if (lines && lines.length) { 
     $('#showLine').on('click', function() { 
     // loop to prevent repeating the last random number 
     while (randomNumber === lastRandomNumber) { 
      randomNumber = parseInt(Math.random() * lines.length); 
      // check to prevent infinite loop 
      if (lines.length === 1) { break; } 
     } 
     // keep track of the last random number 
     lastRandomNumber = randomNumber; 

     // show the corresponding line 
     $('#trivia').text(lines[randomNumber]); 
     }); 
    } 
    }); 
}); 

UPDATE:加入到JavaScript的一些解释性意见(以上和Plunker更新)。还添加了一个检查,以防止连续两次获取相同的随机行。

+0

这真的有帮助。我必须做一些修改,因为目前它不会在我的文本文档中循环。 (我觉得我没有在我的文件中的正确位置) 但是,再次,谢谢! – Logan 2014-10-30 05:13:01

+0

你好。每次页面加载时,我会更改哪一行以使脚本执行“随机函数”?这个脚本似乎是最简单的我发现和工作,但每次页面加载时都需要改变 - 我不知道JavaScript,但试图用.on('onload'和.on('load', - 不足以让它工作 – Cavemanharris 2015-06-24 09:57:00

0

我强烈建议您使用服务器端语言,如PHP。否则,您将无法从文件中只读取一个字或字符串。 JavaScript在浏览器中工作并解析文件,作为第一步,它需要将文件完全加载到浏览器中。

PS

基于任务我不会推荐你使用JQuery或Javascript。很可能这项任务意味着一种保护,就像在早年一样,这种方式被用来激活购买软件的副本。 据推测,软件是用指令购买的,激活算法需要从指令中指定单词的行号,行号和行号。在Javascript的情况下 - 所有这些机制都将在客户端上运行。它需要完全加载文件并在浏览器中进行解析,每个人都会调试它并完全提取秘密文本。这将是一个很容易破解保护。

相关问题