注册 登录
编程论坛 JavaScript论坛

字符串转换---之 输出问题

chiangs 发布于 2010-08-08 23:02, 577 次点击
1,复制进附件 into.txt文件内容。

2,点转换

3,想实现以下修改

             1》 实现out.txt的输出,让sb1的输出整齐。
              我想是否是用if语句把第三列当“-”时增加输出呢?

              2》实现让第二列,2,2,2,4,4,2,2,2,2,2,2,2这一列输出的值全部除以第一个494329-b21的值2,当这一列改变为3时,除以3。这个问题不值如何解决。

只有本站会员才能查看附件,请 登录



[ 本帖最后由 chiangs 于 2010-8-9 11:21 编辑 ]
9 回复
#2
gulimeksoft2010-08-08 23:36
这个,真鸡巴有难度
#3
chiangs2010-08-09 10:08
不会吧。。。。
#4
foktime2010-08-09 10:34
程序代码:
<html>
<title>CCA Tool for Eclipse</title>
<head>

 <script type="text/javascript">
     function replaceAll(v, a, b) {
         x = v;
         while (x.indexOf(a) != -1) {
             x = x.replace(a, b);
         }
         return x;
     }
     function trans(v) {
         var lines = v.split("\r\n");
         var r = "";
         for (i = 0, sb = 0, p = false; i < lines.length - 1; i++) {
             if (lines[i].substr(0, 3) != "ISS") {
                 p = false; continue;
             }
             if (p == false) {
                 p = true, sb++;
             }
             var line = lines[i].split(" ");
             if (line[0] == "ISS") {
                 r += line[1] + "\t" + line[2] + "\t" + line[5] + "\t" + line[7] + "\tsb" + sb + "\r\n";
             }
             else {
                 var rec = /^[0-9]{1}$/;
                 for (var j = 0; j < line.length; j++) {
                     if (rec.test(line[j])) {
                         r += line[1] + "\t" + line[j] + "\t" + line[j+4] + "\tsb" + sb + "\r\n";
                     }
                 }
             }
         }
         return r;
     }
     function click_event() {
         document.getElementById('de').value = trans(document.getElementById('sc').value); document.getElementById('de').focus(); document.getElementById('de').select()
     }
     function clearfn() {
         document.getElementById('sc').value = ''; document.getElementById('de').value = ''
     }
</script>
</head>
<body>
    <p>功能:将CCA的IIS CTO产品AV#转变为可以直接导入Eclipse系统的格式</p>
    <p>使用方法:1,在上区域放入要处理的文本;2,点击“转化”按钮;3,在下域中会得到结果并自动被选中</p>
    <textarea name="sc" id="sc" style="width:900;height:200" wrap="off"></textarea>
    <BR>
    <button onclick="click_event()">转化</button>
    <button onclick="clearfn()">清空</button>
    <BR>
    <textarea name="de" id="de" style="width:900;height:200" wrap="off"></textarea>
</body>
<html>


[ 本帖最后由 foktime 于 2010-8-9 10:36 编辑 ]
#5
chiangs2010-08-09 11:19
回复 4楼 foktime
???为什么我测试 点转化 没反应呢?
#6
chiangs2010-08-09 11:22
回复 5楼 chiangs
我更新了帖子,请帮忙看看。 谢谢啦
#7
foktime2010-08-09 11:27
那你那些要转化的编码发上来
 
 
不用发了 看到了

[ 本帖最后由 foktime 于 2010-8-9 11:30 编辑 ]
#8
chiangs2010-08-09 11:50
回复 7楼 foktime
谢谢了。呵呵
#9
chiangs2010-08-09 12:52
up//////////////////////////
#10
foktime2010-08-09 13:56
中午休息了
继续上午的问题
代码部分:
程序代码:
<html>
<title>CCA Tool for Eclipse</title>
<head>
<script type="text/javascript">
     function replaceAll(v, a, b) {
         x = v;
         while (x.indexOf(a) != -1) {
             x = x.replace(a, b);
         }
         return x;
     }
     function trans(v) {
         var lines = v.split("\r\n");
         var r = "";
         for (i = 0, sb = 0, p = false; i < lines.length - 1; i++) {
             if (lines[i].substr(0, 3) != "ISS") {
                 p = false; continue;
             }
             if (p == false) {
                 p = true, sb++;
             }
             var rec = /^[0-9]{1}$/;
             var rec_kg = /^[ ]{1,}$/;                //过滤数组中值为一个或多个空格的数组元素
             var line = lines[i].split("\t");
             var line_arr = new Array();
             for (var k = 0; k < line.length; k++) {
                 if (!rec_kg.test(line[k]) && line[k]) {
                     //alert(line[k]);               
                     line_arr.push(line[k]);            //将非空格和非空元素插入新的数组           
                 }
            }
            if (line_arr[0] == "ISS") {
                //alert(line_arr[1]);return;
                r += line_arr[1] + "\t" + line_arr[3] + "\t" + line_arr[5] + "\tsb" + sb + "\r\n";
             }
             else {

                 for (var j = 0; j < line_arr.length; j++) {
                     if (rec.test(line_arr[j])) {
                         r += line_arr[1] + "\t" + line_arr[j] + "\t" + line_arr[j + 4] + "\tsb" + sb + "\r\n";
                     }
                 }
             }
         }
         return r;
     }
     function click_event() {
         document.getElementById('de').value = trans(document.getElementById('sc').value); document.getElementById('de').focus(); document.getElementById('de').select()
     }
     function clearfn() {
         document.getElementById('sc').value = ''; document.getElementById('de').value = ''
     }
</script>
</head>
<body>
    <p>功能:将CCA的IIS CTO产品AV#转变为可以直接导入Eclipse系统的格式</p>
    <p>使用方法:1,在上区域放入要处理的文本;2,点击“转化”按钮;3,在下域中会得到结果并自动被选中</p>
    <textarea name="sc" id="sc" style="width:900;height:200" wrap="off"></textarea>
    <BR>
    <button onclick="click_event()">转化</button>
    <button onclick="clearfn()">清空</button>
    <BR>
    <textarea name="de" id="de" style="width:900;height:200" wrap="off"></textarea>
</body>
<html>
试试吧。
输出后部分还是会对不齐。这取决于输出后的倒数第二列的数字长度,长的和短的占的宽度不一样
1》 实现out.txt的输出,让sb1的输出整齐。
              我想是否是用if语句把第三列当“-”时增加输出呢?
这个不能够吧?当第三列是"-"时,增加输出空格或者"\t"的话,也是无法对齐啊,你运行一下程序会发现转换后的编码 倒数第二列比较短的数字和倒数第二列是"-"的  是可以对齐的,只是当数字较长时才会对不齐  当然你可以再写判断 判断数字长度大于多少时 "-"后面再增加输出"\t",这个就你自己练练手写吧
2》实现让第二列,2,2,2,4,4,2,2,2,2,2,2,2这一列输出的值全部除以第一个494329-b21的值2,当这一列改变为3时,除以3。这个问题不值如何解决。

 
这个没大看懂意思,是不是想让所有行的第二列的数值都除以第一行第二列的值?是的话也好写啊,在组织字符串r的时候做一下除法运算就ok了
1