Пытаюсь реализовать хотя бы чтение заголовков gp3 (guitar pro) файлов. Но нифига не получается. Формат нигде не описан, но есть окрытые варианты на java. Вот функция, которая по моему мнению добывает из бинарного файла последовательно информацию.
protected String readStringIntegerPlusOne() throws IOException {
byte[] b;
String str;
int lengthPlusOne;
int length;
int r;
lengthPlusOne = readInt(); // reads the expected length + 1
length = lengthPlusOne - 1; // computes the real length
if (lengthPlusOne > 0) {
// reads the real length (as a byte)
r = read();
if (length != r) {
throw new IOException("Wrong string length: should have been "
+ length);
}
b = new byte[length];
read(b);
str = new String(b);
} else {
r = read();
str = "";
}
return str;
}
К ней обращаются так
// Title
s = readStringIntegerPlusOne();
piece.setTitle(s);
// Subtitle
s = readStringIntegerPlusOne();
piece.setSubtitle(s);
// Interpret
s = readStringIntegerPlusOne();
piece.setInterpret(s);
// Album
s = readStringIntegerPlusOne();
piece.setAlbum(s);
// Author of the song
s = readStringIntegerPlusOne();
piece.setAuthorSong(s);
...
Как будет выглядеть функция на питоне ? Спасибо.