Toon posts:

[html]tabstops in preformatted text

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik laadt met js een assembler file in in een <pre> block, omdat de bende weergegeven moet worden zoals in de file.

Alleen gaat er iets fout met tabs en enters. met js vervang ik #0A door een /n en #09 door een /t.

Nu geeft ie alles goed weer, behalve dan dat de tabgrenze steeds op 8 chars liggen en die wil ik graag op 10 chars hebben zitten. Hoe ga ik dat aanpakken (#09 vervangen door 10 spaties gaat niet werken omdat het ook wel eens minder is)

hoe ga ik dat aanpakken?

  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Dan zul je zelf een functie moeten maken die tabs invoegt aan de hand van de positie, eeehm, vaag. Maar even een voorbeeld maken:

JavaScript:
1
2
3
4
5
6
7
function InsertTab(pos)
{
  x = (pos % 10)
  spatie = "";
  for (var i = 0; i < x; i++) { spatie += " "; }
  return spatie;
}

Waar pos de plaats is van de cursor.

Verwijderd

Topicstarter
briljant (zat een klein foutje in bij jou, die xmoet 10-pos%10 zijn)
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var tabStop = 12;
function process() {
    txt = document.getElementById('source').innerText;
    txt = txt.replace(/(\r\n){2}/gi,'\n');
    txt = txt.replace(/\x09/gi,'\t');
    var lines = txt.split('\n');
    for (var i=0; i<lines.length;i++) {
        while (lines[i].indexOf('\t') != -1) {
            var pos = lines[i].indexOf('\t');
            var spaces = tabStop-pos%tabStop;
            var filler = '';
            for (var j=0;j<spaces;j++) filler+=' ';
            lines[i] = lines[i].replace(/\t/,filler);
        }
    }
    txt = lines.join('\n');
    document.getElementById('result').innerHTML = '<pre>'+txt+'</pre>';
}


(was eigenlijk op zoek naar een HTML oplossing, maar dit werkt ook gewoon. Alleen niet echt heel netjes om tabs te gaan vervangen door spaties als het op uitlijning aankomt)

[ Voor 38% gewijzigd door Verwijderd op 28-08-2003 13:30 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Verwijderd schreef op 27 August 2003 @ 13:17:
briljant (zat een klein foutje in bij jou, die xmoet 10-pos%10 zijn)
Ik had het even snel uit mijn hoofd gedaan en niet getest, het ging om het idee. Ik dacht dat je hier wel mee verder kon :)

[ Voor 56% gewijzigd door André op 27-08-2003 14:28 ]