java item log einlesen:
Code:
in = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
do
{
line = in.readLine();
//System.out.println(line);
if(line != null)
{
if(!line.contains("Unidentified"))
{
if(line.startsWith(" "))
line = line.replaceFirst(" ", "");
content.add(line);
}
}
}
while(line != null);

Ausgabe so wie der d2nt es in die text file schreibt.

Ausgabe nachdem ich die text file im notepad++ zu ANSI konvertiert habe (Kodierung-> Konvertieren zu ANSI).
Wie man sieht ist die Nicht ANSI konvertierte version doppelt so groß was sich durch die zusätlichen whitespaces erklärt.
Im Anhang findet ihr noch die beiden Item Logs sowie gepackt in einer .zip da die text files vll beim speicher/upload vorgang verändert werden könnten.
js code vom d2nt
Code:
function NTU_TLInventory() {
NTConfig_TLInventory_SkipEquipped = true; // true = just log stash and inventory
NTConfig_TLInventory_Delimeter = "-"; // output file delimiter - see function TTL_WriteIt()
NTConfig_TLInventory_SortOrder = "QUALITY|TYPE|CLASS|NAME";
Print(COLOR_3 + "[Toothless Inventory] - Load");
TLI_DoIt();
Print ("Finished");
}
function TLI_DoIt(verbose) {
Print ("Attempting to log inventory ...");
if(arguments.length < 1)
var verbose = false;
var items = me.GetItems();
items.sort(function(a, b){
var nameA=a.name.toLowerCase(), nameB=b.name.toLowerCase()
if (nameA < nameB) //sort string ascending
return -1
if (nameA > nameB)
return 1
return 0 //default return value (no sorting)
});
var logged = new Array();
if (items) {
for(var i = 0 ; i < items.length ; i++) {
item = items[i];
ignore = _NTT_IgnoredItems.join("-");
ignore += "-box";
if(ignore.indexOf(item.code) == -1) {
if(!NTConfig_TLInventory_SkipEquipped)
logged.push(item);
else if (item.mode == 0)
logged.push(item);
}
}
if (logged.length) {
var fileName = "logs/" + me.account + "." + me.name + ".txt";
_file = FileOpen(fileName, 1);
if (_file) {
for (var i = 0; i < logged.length; i++)
TLI_LogItem(_file, logged[i], verbose);
_file.Close();
Print (COLOR_2 + logged.length + " items written to - " + fileName + " -");
}
else
Print(COLOR_1 + "Unable to write file to - " + fileName);
}
else
Print(COLOR_1 + "No items on this character to log");
}
else
Print(COLOR_1 + "No items on this character to log");
}
function TLI_LogItem(file, item, verbose)
{
var UNIDtext = "";
if (!(item.itemflag & 0x10))
{
for (var qual in _NTIPAliasQuality)
{
if (_NTIPAliasQuality[qual]==item.quality) UNIDtext+=qual.charAt(0).toUpperCase() + qual.substr(1) + "/";
}
var s = item.itemdesc;
s = s.replace(REGEX6, REPLACE6);
var def = s.match(/.*(Defense: \d+).*/);
if (def!=null)
{
def[0] = def[0].replace(/Defense:/,"Def");
UNIDtext += def[0]+"/";
}
UNIDtext += "Unidentified";
if (item.itemflag & 0x400000) UNIDtext+="/Ethereal";
file.WriteLine(UNIDtext);
}
else
{
file.WriteLine(item.itemtype);
file.WriteLine(item.quality);
file.WriteLine(removeColor(item.itemdesc));
file.WriteLine("NEXT_ITEM");
}
}
function removeColor(s)
{
s = s.replace(REGEX6, REPLACE6);
return s;
}
mfg exi
Edit:
habe gerade nochmal ein test durchgeführt und anscheint liegt es Nicht an Java. Da c++ die gleichen whitespace probleme hat.
Code:
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
ifstream f;
string s;
f.open("test-log.txt", ios::in);
while (!f.eof())
{
getline(f, s);
cout << s << endl;
}
f.close();
system("PAUSE");
return EXIT_SUCCESS;
}
Gibt es vll jemanden der dieses Problem schonmal hatte?

vll muddy bei seinem mule manager?